在北京舉辦的NVIDIA GTC China會議中,無論是AI智能運(yùn)算,還是服務(wù)器數(shù)據(jù)中心、智能城市,甚至還有去年很火熱但是已經(jīng)很多人已經(jīng)支撐不下去的虛擬現(xiàn)實,看起來在很多內(nèi)心中依然是屬于圖形行業(yè)代表的NVIDIA已經(jīng)變得越來越豐滿,不過在這些新聞的背后,似乎還有更大膽的預(yù)言:摩爾定律已死,GPU最終會取代CPU。
摩爾定律是由英特爾(Intel)創(chuàng)始人之一戈登·摩爾(Gordon Moore)提出來的。其內(nèi)容為:當(dāng)價格不變時,集成電路上可容納的元器件的數(shù)目,約每隔18-24個月便會增加一倍,性能也將提升一倍。換言之,每一美元所能買到的電腦性能,將每隔18-24個月翻一倍以上。這一定律揭示了信息技術(shù)進(jìn)步的速度。
概要:CPU和GPU之所以大不相同,是由于其設(shè)計目標(biāo)的不同,它們分別針對了兩種不同的應(yīng)用場景。
盡管這種趨勢已經(jīng)持續(xù)了超過半個世紀(jì),摩爾定律仍應(yīng)該被認(rèn)為是觀測或推測,而不是一個物理或自然法。然而,2010年國際半導(dǎo)體技術(shù)發(fā)展路線圖的更新增長已經(jīng)放緩在2013年年底,之后的時間里晶體管數(shù)量密度預(yù)計只會每三年翻一番。
CPU和GPU之所以大不相同,是由于其設(shè)計目標(biāo)的不同,它們分別針對了兩種不同的應(yīng)用場景。CPU需要很強(qiáng)的通用性來處理各種不同的數(shù)據(jù)類型,同時又要邏輯判斷又會引入大量的分支跳轉(zhuǎn)和中斷的處理。這些都使得CPU的內(nèi)部結(jié)構(gòu)異常復(fù)雜。而GPU面對的則是類型高度統(tǒng)一的、相互無依賴的大規(guī)模數(shù)據(jù)和不需要被打斷的純凈的計算環(huán)境。于是CPU和GPU就呈現(xiàn)出非常不同的架構(gòu)。
GPU采用了數(shù)量眾多的計算單元和超長的流水線,但只有非常簡單的控制邏輯并省去了Cache。而CPU不僅被Cache占據(jù)了大量空間,而且還有有復(fù)雜的控制邏輯和諸多優(yōu)化電路,相比之下計算能力只是CPU很小的一部分
從上圖可以看出:Cache, local memory: CPU > GPU Threads(線程數(shù)): GPU > CPURegisters: GPU > CPU 多寄存器可以支持非常多的Thread,Thread需要用到register,Thread數(shù)目大,register也必須得跟著很大才行。SIMD Unit(單指令多數(shù)據(jù)流,以同步方式,在同一時間內(nèi)執(zhí)行同一條指令): GPU > CPU。 CPU 基于低延時的設(shè)計:
CPU有強(qiáng)大的ALU(算術(shù)運(yùn)算單元),它可以在很少的時鐘周期內(nèi)完成算術(shù)計算。當(dāng)今的CPU可以達(dá)到64bit 雙精度。執(zhí)行雙精度浮點(diǎn)源算的加法和乘法只需要1~3個時鐘周期。CPU的時鐘周期的頻率是非常高的,達(dá)到1.532~3gigahertz(千兆HZ, 10的9次方),大的緩存也可以降低延時。保存很多的數(shù)據(jù)放在緩存里面,當(dāng)需要訪問的這些數(shù)據(jù),只要在之前訪問過的,如今直接在緩存里面取即可。復(fù)雜的邏輯控制單元。當(dāng)程序含有多個分支的時候,它通過提供分支預(yù)測的能力來降低延時。數(shù)據(jù)轉(zhuǎn)發(fā)。 當(dāng)一些指令依賴前面的指令結(jié)果時,數(shù)據(jù)轉(zhuǎn)發(fā)的邏輯控制單元決定這些指令在pipeline中的位置并且盡可能快的轉(zhuǎn)發(fā)一個指令的結(jié)果給后續(xù)的指令。這些動作需要很多的對比電路單元和轉(zhuǎn)發(fā)電路單元。
GPU是基于大的吞吐量設(shè)計。GPU的特點(diǎn)是有很多的ALU和很少的Cache,緩存的目的是保存后面需要訪問的數(shù)據(jù)的,這點(diǎn)和CPU不同,而是為Thread提高服務(wù)的。如果有很多線程需要訪問同一個相同的數(shù)據(jù),緩存會合并這些訪問,然后再去訪問dram(因為需要訪問的數(shù)據(jù)保存在dram中而不是Cache里面),獲取數(shù)據(jù)后Cache會轉(zhuǎn)發(fā)這個數(shù)據(jù)給對應(yīng)的線程,這個時候是數(shù)據(jù)轉(zhuǎn)發(fā)的角色。但是由于需要訪問dram,自然會帶來延時的問題。GPU的控制單元(左邊黃色區(qū)域塊)可以把多個的訪問合并成少的訪問。
GPU雖然有dram延時,卻有非常多的ALU和非常多的Thread,為了平衡內(nèi)存延時的問題,我們可以中充分利用多的ALU的特性達(dá)到一個非常大的吞吐量的效果。盡可能多的分配Threads。通常來看GPU ALU會有非常重的pipeline就是因為這樣。所以CPU擅長邏輯控制,串行的運(yùn)算。和通用類型數(shù)據(jù)運(yùn)算不同,GPU擅長的是大規(guī)模并發(fā)計算,這也正是密碼破解等所需要的。所以GPU除了圖像處理,也越來越多的參與到計算當(dāng)中來。
什么類型的程序適合在GPU上運(yùn)行?
(1)計算密集型的程序。所謂計算密集型(Compute-intensive)的程序,就是其大部分運(yùn)行時間花在了寄存器運(yùn)算上,寄存器的速度和處理器的速度相當(dāng),從寄存器讀寫數(shù)據(jù)幾乎沒有延時??梢宰鲆幌聦Ρ龋x內(nèi)存的延遲大概是幾百個時鐘周期;讀硬盤的速度就不說了,即便是SSD, 也實在是太慢了。
(2)易于并行的程序。GPU其實是一種SIMD(Single Instruction Multiple Data)架構(gòu), 他有成百上千個核,每一個核在同一時間最好能做同樣的事情。
-
cpu
+關(guān)注
關(guān)注
68文章
10899瀏覽量
212615 -
摩爾定律
+關(guān)注
關(guān)注
4文章
636瀏覽量
79171 -
gpu
+關(guān)注
關(guān)注
28文章
4766瀏覽量
129196
原文標(biāo)題:GPU會取代CPU的位置嗎?
文章出處:【微信號:mcuworld,微信公眾號:嵌入式資訊精選】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論