姓名:李濤
學號:17021211100
轉載自http://mp.weixin.qq.com/s/Z_qECRwN0WdA_lxVLAnX9g 有修改
【嵌牛導讀】:CPU中央處理器,GPU圖像處理器文狱,是由于其設計目標的不同卒茬,它們分別針對了兩種不同的應用場景吕漂。CPU需要很強的通用性來處理各種不同的數(shù)據(jù)類型贾陷,同時又要邏輯判斷又會引入大量的分支跳轉和中斷的處理队橙。這些都使得CPU的內部結構異常復雜候味。而GPU面對的則是類型高度統(tǒng)一的抒寂、相互無依賴的大規(guī)模數(shù)據(jù)和不需要被打斷的純凈的計算環(huán)境。
【嵌牛鼻子】:CPU毅访,GPU
【嵌牛提問】:根據(jù)設計思路菊值,分析GPU與CPU工作的區(qū)別和優(yōu)缺點祝闻?
【嵌牛正文】:
CPU和GPU都是具有運算能力的芯片饭尝,CPU更為通用舶吗,GPU則應用領域專業(yè)性則更強更像——圖形類數(shù)值計算為核心冈爹。在不同類型的運算方面的速度也就決定了它們的能力——“擅長和不擅長”倾鲫。
芯片的速度主要取決于三個方面:微架構崖堤、主頻毅糟、IPC(每個時鐘周期執(zhí)行的指令數(shù))。
1.微架構
從微架構上看弛饭,CPU和GPU看起來完全不是按照相同的設計思路設計的冕末,當代CPU的微架構是按照兼顧“指令并行執(zhí)行”和“數(shù)據(jù)并行運算”的思路而設計,就是要兼顧程序執(zhí)行和數(shù)據(jù)運算的并行性侣颂、通用性以及它們的平衡性档桃。CPU的微架構偏重于程序執(zhí)行的效率,不會一味追求某種運算極致速度而犧牲程序執(zhí)行的效率憔晒。
CPU微架構的設計是面向指令執(zhí)行高效率而設計的藻肄,因而CPU是計算機中設計最復雜的芯片。和GPU相比拒担,CPU核心的重復設計部分不多嘹屯,這種復雜性不能僅以晶體管的多寡來衡量,這種復雜性來自于實現(xiàn):如程序分支預測从撼,推測執(zhí)行州弟,多重嵌套分支執(zhí)行,并行執(zhí)行時候的指令相關性和數(shù)據(jù)相關性低零,多核協(xié)同處理時候的數(shù)據(jù)一致性等等復雜邏輯婆翔。
GPU其實是由硬件實現(xiàn)的一組圖形函數(shù)的集合,這些函數(shù)主要用于繪制各種圖形所需要的運算掏婶。這些和像素啃奴,光影處理,3D 坐標變換等相關的運算由GPU硬件加速來實現(xiàn)雄妥。圖形運算的特點是大量同類型數(shù)據(jù)的密集運算——如圖形數(shù)據(jù)的矩陣運算最蕾,GPU的微架構就是面向適合于矩陣類型的數(shù)值計算而設計的,大量重復設計的計算單元茎芭,這類計算可以分成眾多獨立的數(shù)值計算——大量數(shù)值運算的線程揖膜,而且數(shù)據(jù)之間沒有像程序執(zhí)行的那種邏輯關聯(lián)性。
GPU微架構復雜度不高梅桩,盡管晶體管的數(shù)量不少壹粟。從應用的角度看,如何運用好GPU的并行計算能力主要的工作是開發(fā)好它的驅動程序宿百。GPU驅動程序的優(yōu)劣很大程度左右了GPU實際性能的發(fā)揮趁仙。
因此從微架構上看,CPU擅長的是像操作系統(tǒng)垦页、系統(tǒng)軟件和通用應用程序這類擁有復雜指令調度雀费、循環(huán)、分支痊焊、邏輯判斷以及執(zhí)行等的程序任務盏袄。它的并行優(yōu)勢是程序執(zhí)行層面的忿峻,程序邏輯的復雜度也限定了程序執(zhí)行的指令并行性,上百個并行程序執(zhí)行的線程基本看不到辕羽。GPU擅長的是圖形類的或者是非圖形類的高度并行數(shù)值計算逛尚,GPU可以容納上千個沒有邏輯關系的數(shù)值計算線程,它的優(yōu)勢是無邏輯關系數(shù)據(jù)的并行計算刁愿。
2.主頻
另外绰寞,GPU執(zhí)行每個數(shù)值計算的速度并沒有比CPU快,從目前主流CPU和GPU的主頻就可以看出了铣口,CPU的主頻都超過了1GHz滤钱,2GHz,甚至3GHz脑题,而GPU的主頻最高還不到1GHz件缸,主流的也就500~600MHz。要知道1GHz = 1000MHz旭蠕。所以GPU在執(zhí)行少量線程的數(shù)值計算時并不能超過CPU停团。
目前GPU數(shù)值計算的優(yōu)勢主要是浮點運算,它執(zhí)行浮點運算快是靠大量并行掏熬,但是這種數(shù)值運算的并行性在面對程序的邏輯執(zhí)行時毫無用處佑稠。
3.IPC
(每個時鐘周期執(zhí)行的指令數(shù))
這個方面,CPU和GPU無法比較旗芬,因為GPU大多數(shù)指令都是面向數(shù)值計算的舌胶,少量的控制指令也無法被操作系統(tǒng)和軟件直接使用。如果比較數(shù)據(jù)指令的IPC疮丛,GPU顯然要高過CPU幔嫂,因為并行的原因。但是誊薄,如果比較控制指令的IPC履恩,自然是CPU的要高的多。原因很簡單呢蔫,CPU著重的是指令執(zhí)行的并行性切心。
另外,目前有些GPU也能夠支持比較復雜的控制指令片吊,比如條件轉移绽昏、分支、循環(huán)和子程序調用等俏脊,但是GPU程序控制這方面的增加全谤,和支持操作系統(tǒng)所需要的能力CPU相比還是天壤之別,而且指令執(zhí)行的效率也無法和CPU相提并論爷贫。
最后總結一下:
CPU擅長的:操作系統(tǒng)认然,系統(tǒng)軟件补憾,應用程序,通用計算季眷,系統(tǒng)控制等等余蟹;游戲中人工智能,物理模擬等等子刮;3D建模-光線追蹤渲染;虛擬化技術——抽象硬件窑睁,同時運行多個操作系統(tǒng)或者一個操作系統(tǒng)的多個副本等等挺峡。
GPU擅長的:圖形類矩陣運算,非圖形類并行數(shù)值計算担钮,高端3D游戲橱赠。
綜上所述,在一臺均衡計算的計算機系統(tǒng)中箫津,CPU和GPU還是各司其職狭姨,除了圖形運算,GPU將來可能主要集中在高效率低成本的高性能并行數(shù)值計算苏遥,幫助CPU分擔這種類型的計算饼拍,提高系統(tǒng)這方面的性能。而當前的典型應用還是高端3D游戲田炭,一個高效的GPU配合一個高效的CPU师抄,3D游戲的整體效率才能得到保證〗塘颍“高端3D游戲只需要高端顯卡”或者“高端3D游戲只需要CPU”都是無稽之談叨吮。