資料介紹
CPU和GPU之所以大不相同,是由于其設(shè)計(jì)目標(biāo)的不同,它們分別針對(duì)了兩種不同的應(yīng)用場(chǎng)景。CPU需要很強(qiáng)的通用性來(lái)處理各種不同的數(shù)據(jù)類(lèi)型,同時(shí)又要邏輯判斷,還會(huì)引入大量的分支跳轉(zhuǎn)和中斷的處理。這些都使得CPU的內(nèi)部結(jié)構(gòu)異常復(fù)雜,而GPU面對(duì)的則是類(lèi)型高度統(tǒng)一的、相互無(wú)依賴(lài)的大規(guī)模數(shù)據(jù)和不需要被打斷的純凈的計(jì)算環(huán)境。
這個(gè)視頻,非常具象的表述了CPU和GPU在圖像處理時(shí)的不同的原理和方法??吹紾PU的模型噴射出的一瞬間,你就秒懂了。
根據(jù)上面視頻中的比喻,你應(yīng)該很清楚CPU和GPU就呈現(xiàn)出非常不同的架構(gòu):
綠色的是計(jì)算單元橙紅色的是存儲(chǔ)單元橙黃色的是控制單元
GPU采用了數(shù)量眾多的計(jì)算單元和超長(zhǎng)的流水線(xiàn),但只有非常簡(jiǎn)單的控制邏輯并省去了Cache。而CPU不僅被Cache占據(jù)了大量空間,而且還有有復(fù)雜的控制邏輯和諸多優(yōu)化電路,相比之下計(jì)算能力只是CPU很小的一部分。
GPU 如何加快軟件應(yīng)用程序的運(yùn)行速度
GPU 加速計(jì)算可以提供非凡的應(yīng)用程序性能,能將應(yīng)用程序計(jì)算密集部分的工作負(fù)載轉(zhuǎn)移到 GPU,同時(shí)仍由 CPU 運(yùn)行其余程序代碼。從用戶(hù)的角度來(lái)看,應(yīng)用程序的運(yùn)行速度明顯加快。
如何利用 GPU 實(shí)現(xiàn)加速
GPU 擁有數(shù)以千計(jì)的核心,可高效地處理并行任務(wù)
GPU 與 CPU 性能比較
理解 GPU 和 CPU 之間區(qū)別的一種簡(jiǎn)單方式是比較它們?nèi)绾翁幚砣蝿?wù)。CPU 由專(zhuān)為順序串行處理而優(yōu)化的幾個(gè)核心組成,而 GPU 則擁有一個(gè)由數(shù)以千計(jì)的更小、更高效的核心(專(zhuān)為同時(shí)處理多重任務(wù)而設(shè)計(jì))組成的大規(guī)模并行計(jì)算架構(gòu)。
從上圖可以看出:
Cache, local memory: CPU > GPU
Threads(線(xiàn)程數(shù)): GPU > CPU
Registers: GPU > CPU
SIMD Unit(單指令多數(shù)據(jù)流,以同步方式,在同一時(shí)間內(nèi)執(zhí)行同一條指令): GPU > CPU
CPU 基于低延時(shí)的設(shè)計(jì)
CPU有強(qiáng)大的ALU(算術(shù)運(yùn)算單元),它可以在很少的時(shí)鐘周期內(nèi)完成算術(shù)計(jì)算。
當(dāng)今的CPU可以達(dá)到64bit 雙精度。執(zhí)行雙精度浮點(diǎn)源算的加法和乘法只需要1~3個(gè)時(shí)鐘周期。
CPU的時(shí)鐘周期的頻率是非常高的,達(dá)到1.532~3gigahertz(千兆HZ, 10的9次方)。
大的緩存也可以降低延時(shí)。保存很多的數(shù)據(jù)放在緩存里面,當(dāng)需要訪(fǎng)問(wèn)的這些數(shù)據(jù),只要在之前訪(fǎng)問(wèn)過(guò)的,如今直接在緩存里面取即可。
復(fù)雜的邏輯控制單元。當(dāng)程序含有多個(gè)分支的時(shí)候,它通過(guò)提供分支預(yù)測(cè)的能力來(lái)降低延時(shí)。
數(shù)據(jù)轉(zhuǎn)發(fā)。 當(dāng)一些指令依賴(lài)前面的指令結(jié)果時(shí),數(shù)據(jù)轉(zhuǎn)發(fā)的邏輯控制單元決定這些指令在pipeline中的位置并且盡可能快的轉(zhuǎn)發(fā)一個(gè)指令的結(jié)果給后續(xù)的指令。這些動(dòng)作需要很多的對(duì)比電路單元和轉(zhuǎn)發(fā)電路單元。
GPU是基于大的吞吐量設(shè)計(jì)
GPU的特點(diǎn)是有很多的ALU和很少的cache。緩存的目的不是保存后面需要訪(fǎng)問(wèn)的數(shù)據(jù)的,這點(diǎn)和CPU不同,而是為thread提高服務(wù)的。如果有很多線(xiàn)程需要訪(fǎng)問(wèn)同一個(gè)相同的數(shù)據(jù),緩存會(huì)合并這些訪(fǎng)問(wèn),然后再去訪(fǎng)問(wèn)dram(因?yàn)樾枰L(fǎng)問(wèn)的數(shù)據(jù)保存在dram中而不是cache里面),獲取數(shù)據(jù)后cache會(huì)轉(zhuǎn)發(fā)這個(gè)數(shù)據(jù)給對(duì)應(yīng)的線(xiàn)程,這個(gè)時(shí)候是數(shù)據(jù)轉(zhuǎn)發(fā)的角色。但是由于需要訪(fǎng)問(wèn)dram,自然會(huì)帶來(lái)延時(shí)的問(wèn)題。
GPU的控制單元(左邊黃色區(qū)域塊)可以把多個(gè)的訪(fǎng)問(wèn)合并成少的訪(fǎng)問(wèn)。
GPU雖然有dram延時(shí),卻有非常多的ALU和非常多的thread。 為平衡內(nèi)存延時(shí)的問(wèn)題,我們可以充分利用多的ALU的特性達(dá)到一個(gè)非常大的吞吐量的效果。盡可能多的分配多的Threads。通常來(lái)看GPU ALU會(huì)有非常重的pipeline就是因?yàn)檫@樣。
所以與CPU擅長(zhǎng)邏輯控制,串行的運(yùn)算。和通用類(lèi)型數(shù)據(jù)運(yùn)算不同,GPU擅長(zhǎng)的是大規(guī)模并發(fā)計(jì)算,這也正是密碼破解等所需要的。所以GPU除了圖像處理,也越來(lái)越多的參與到計(jì)算當(dāng)中來(lái)。
GPU的工作大部分就是這樣,計(jì)算量大,但沒(méi)什么技術(shù)含量,而且要重復(fù)很多很多次。就像你有個(gè)工作需要算幾億次一百以?xún)?nèi)加減乘除一樣,最好的辦法就是雇上幾十個(gè)小學(xué)生一起算,一人算一部分,反正這些計(jì)算也沒(méi)什么技術(shù)含量,純粹體力活而已。而CPU就像老教授,積分微分都會(huì)算,就是工資高,一個(gè)老教授資頂二十個(gè)小學(xué)生,你要是富士康你雇哪個(gè)?
GPU就是這樣,用很多簡(jiǎn)單的計(jì)算單元去完成大量的計(jì)算任務(wù),純粹的人海戰(zhàn)術(shù)。這種策略基于一個(gè)前提,就是小學(xué)生A和小學(xué)生B的工作沒(méi)有什么依賴(lài)性,是互相獨(dú)立的。很多涉及到大量計(jì)算的問(wèn)題基本都有這種特性,比如你說(shuō)的破解密碼,挖礦和很多圖形學(xué)的計(jì)算。這些計(jì)算可以分解為多個(gè)相同的簡(jiǎn)單小任務(wù),每個(gè)任務(wù)就可以分給一個(gè)小學(xué)生去做。但還有一些任務(wù)涉及到“流”的問(wèn)題。比如你去相親,雙方看著順眼才能繼續(xù)發(fā)展??偛荒苣氵@邊還沒(méi)見(jiàn)面呢,那邊找人把證都給領(lǐng)了。這種比較復(fù)雜的問(wèn)題都是CPU來(lái)做的。
總而言之,CPU和GPU因?yàn)樽畛跤脕?lái)處理的任務(wù)就不同,所以設(shè)計(jì)上有不小的區(qū)別。而某些任務(wù)和GPU最初用來(lái)解決的問(wèn)題比較相似,所以用GPU來(lái)算了。GPU的運(yùn)算速度取決于雇了多少小學(xué)生,CPU的運(yùn)算速度取決于請(qǐng)了多么厲害的教授。教授處理復(fù)雜任務(wù)的能力是碾壓小學(xué)生的,但是對(duì)于沒(méi)那么復(fù)雜的任務(wù),還是頂不住人多。當(dāng)然現(xiàn)在的GPU也能做一些稍微復(fù)雜的工作了,相當(dāng)于升級(jí)成初中生高中生的水平。但還需要CPU來(lái)把數(shù)據(jù)喂到嘴邊才能開(kāi)始干活,究竟還是靠CPU來(lái)管的。
什么類(lèi)型的程序適合在GPU上運(yùn)行?
(1)計(jì)算密集型的程序。所謂計(jì)算密集型(Compute-intensive)的程序,就是其大部分運(yùn)行時(shí)間花在了寄存器運(yùn)算上,寄存器的速度和處理器的速度相當(dāng),從寄存器讀寫(xiě)數(shù)據(jù)幾乎沒(méi)有延時(shí)??梢宰鲆幌聦?duì)比,讀內(nèi)存的延遲大概是幾百個(gè)時(shí)鐘周期;讀硬盤(pán)的速度就不說(shuō)了,即便是SSD, 也實(shí)在是太慢了。
??
(2)易于并行的程序。GPU其實(shí)是一種SIMD(Single Instruction Multiple Data)架構(gòu), 他有成百上千個(gè)核,每一個(gè)核在同一時(shí)間最好能做同樣的事情。
CPU會(huì)利用較高的主頻、cache、分支預(yù)測(cè)等技術(shù),使處理每條指令所需的時(shí)間盡可能少,從而減低具有復(fù)雜跳轉(zhuǎn)分支程序執(zhí)行所需的時(shí)間。GPU則通過(guò)數(shù)量喪心病狂的流處理器實(shí)現(xiàn)大量線(xiàn)程并行,使同時(shí)走一條指令的數(shù)據(jù)變多,從而提高數(shù)據(jù)的吞吐量。
下載該資料的人也在下載
下載該資料的人還在閱讀
更多 >
- 程序是如何在 CPU 中運(yùn)行的(二)
- 我們?cè)谡務(wù)撘糍|(zhì)的時(shí)候在談?wù)撌裁?b class="flag-6" style="color: red">資料下載
- 從單片機(jī)上電程序運(yùn)行開(kāi)始...資料下載
- CPU是怎樣訪(fǎng)問(wèn)內(nèi)存的?資料下載
- 用51單片機(jī)點(diǎn)亮燈管的程序資料下載
- 單片機(jī)程序到底是如何運(yùn)行的?資料下載
- CPU上的晶體管有多少個(gè)?資料下載
- 藍(lán)牙m(xù)esh網(wǎng)絡(luò)為何適合商業(yè)照明資料下載
- 在執(zhí)行程序及產(chǎn)生中斷時(shí)CPU內(nèi)會(huì)發(fā)生什么變化?資料下載
- 單片機(jī)僅靠CPU和內(nèi)存是無(wú)法運(yùn)行的!資料下載
- 機(jī)器視覺(jué)應(yīng)用,CPU還是FPGA?資料下載
- C語(yǔ)言與VB語(yǔ)言聯(lián)合在Proteus上的仿真資料合集 10次下載
- VCO-108和108TC額定運(yùn)行參數(shù)的詳細(xì)資料免費(fèi)下載
- CPU-GPU異構(gòu)系統(tǒng)下的片上網(wǎng)絡(luò)仲裁機(jī)制研究 1次下載
- 用JMX連接本地JVM上運(yùn)行的Java程序 4次下載
- 如何選擇適合的GPU 386次閱讀
- CPU渲染和GPU渲染優(yōu)劣分析 646次閱讀
- gpu是什么和cpu的區(qū)別 1.8w次閱讀
- 詳解GPU硬件架構(gòu)及運(yùn)行機(jī)制 2439次閱讀
- 為什么GPU比CPU更快? 2500次閱讀
- CPU和GPU之間的主要區(qū)別 826次閱讀
- CPU、GPU和內(nèi)存知識(shí)科普 1981次閱讀
- 一文知道CPU和GPU的區(qū)別 5791次閱讀
- GPU與CPU間的比較 4753次閱讀
- GPU如何加快軟件應(yīng)用程序的運(yùn)行速度 1w次閱讀
- 適合在GPU上運(yùn)行的程序 挖礦為何只用GPU 4944次閱讀
- GPU優(yōu)勢(shì)大于CPU?CPU將消失? 1936次閱讀
- FPGA比CPU和GPU快的原因 9.5w次閱讀
- 簡(jiǎn)單解析GPU和CPU在并行計(jì)算方面的5個(gè)不同 8516次閱讀
- GPU還是CPU?看完這個(gè)你就懂了 4.7w次閱讀
下載排行
本周
- 1電子電路原理第七版PDF電子教材免費(fèi)下載
- 0.00 MB | 1489次下載 | 免費(fèi)
- 2單片機(jī)典型實(shí)例介紹
- 18.19 MB | 91次下載 | 1 積分
- 3S7-200PLC編程實(shí)例詳細(xì)資料
- 1.17 MB | 27次下載 | 1 積分
- 4筆記本電腦主板的元件識(shí)別和講解說(shuō)明
- 4.28 MB | 18次下載 | 4 積分
- 5開(kāi)關(guān)電源原理及各功能電路詳解
- 0.38 MB | 9次下載 | 免費(fèi)
- 6基于A(yíng)T89C2051/4051單片機(jī)編程器的實(shí)驗(yàn)
- 0.11 MB | 4次下載 | 免費(fèi)
- 7基于單片機(jī)和 SG3525的程控開(kāi)關(guān)電源設(shè)計(jì)
- 0.23 MB | 3次下載 | 免費(fèi)
- 8基于單片機(jī)的紅外風(fēng)扇遙控
- 0.23 MB | 3次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234313次下載 | 免費(fèi)
- 2PADS 9.0 2009最新版 -下載
- 0.00 MB | 66304次下載 | 免費(fèi)
- 3protel99下載protel99軟件下載(中文版)
- 0.00 MB | 51209次下載 | 免費(fèi)
- 4LabView 8.0 專(zhuān)業(yè)版下載 (3CD完整版)
- 0.00 MB | 51043次下載 | 免費(fèi)
- 5555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33562次下載 | 免費(fèi)
- 6接口電路圖大全
- 未知 | 30319次下載 | 免費(fèi)
- 7Multisim 10下載Multisim 10 中文版
- 0.00 MB | 28588次下載 | 免費(fèi)
- 8開(kāi)關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21539次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935053次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537791次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234313次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233045次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191183次下載 | 免費(fèi)
- 7十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
- 158M | 183277次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138039次下載 | 免費(fèi)
評(píng)論