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