-
1 # 麗臺中國
-
2 # 數字家居申先生
基於GPU的通用計算已成為近幾年人們關注的一個研究熱點。將GPU用於通用計算的主要目的是為了加速計算,加速的動力來自GPU在高效能計算方面所具有的優勢:
(1)高效的並行性。
這一功能主要是透過GPU多條繪製流水線的平行計算來體現的。在目前主流的GPU中,多條流水線可以在單一控制部件的集中控制下執行,也可以獨立執行。GPU的頂點處理流水線使用MIMD方式控制,片段處理流水線使用SIMD結構。相對於並行機而言,GPU提供的並行性在十分廉價的基礎上,為很多適合於在GPU上進行處理的應用提供了一個很好的並行方案。
(2)高密集的運算。
GPU通常具有128位或256位的記憶體位寬,因此GPU在計算密集型應用方面具有很好的效能。
(3)超長圖形流水線。
GPU超長圖形流水線的設計以吞吐量的最大化為目標,因此GPU作為資料流並行處理機,在對大規模的資料流並行處理方面具有明顯的優勢。
如下圖所示,CPU中的大部分電晶體主要用於構建控制電路(如分支預測等)和Cache,只有少部分的電晶體來完成實際的運算工作。GPU與CPU的設計目標不同,其控制電路相對簡單,而且對Cache的需求較小,所以大部分電晶體可以組成各類專用電路和多條流水線,使GPU的計算速度有了突破性的飛躍,擁有驚人的處理浮點運算的能力。
圖:GPU與CPU內部結構比較
正是由於GPU在並行處理和計算密集型問題求解等方面所具有的諸多優勢,GPU已成為目前普通PC機所擁有的強大、高效的計算資源。從系統架構上看,GPU是針對向量計算進行了最佳化的高度並行的資料流處理機。這種以資料流作為處理單元的處理機,在對資料流的處理上可以獲得很高的效率。
-
3 # 小說研究所
CPU和GPU都是具有運算能力的晶片,CPU更像“通才”——指令運算(執行)為重+數值運算,GPU更像“專才”——圖形類數值計算為核心。在不同型別的運算方面的速度也就決定了它們的能力——“擅長和不擅長”。晶片的速度主要取決於三個方面:微架構,主頻和IPC(每個時鐘週期執行的指令數)。
微架構
CPU微架構的設計是面向指令執行高效率而設計的,因而CPU是計算機中設計最複雜的晶片。和GPU相比,CPU核心的重複設計部分不多,這種複雜性不能僅以電晶體的多寡來衡量,這種複雜性來自於實現:如程式分支預測,推測執行,多重巢狀分支執行,並行執行時候的指令相關性和資料相關性,多核協同處理時候的資料一致性等等複雜邏輯。
GPU其實是由硬體實現的一組圖形函式的集合,這些函式主要用於繪製各種圖形所需要的運算。這些和畫素,光影處理,3D座標變換等相關的運算由GPU硬體加速來實現。圖形運算的特點是大量同類型資料的密集運算——如圖形資料的矩陣運算,GPU的微架構就是面向適合於矩陣型別的數值計算而設計的,大量重複設計的計算單元,這類計算可以分成眾多獨立的數值計算——大量數值運算的執行緒,而且資料之間沒有像程式執行的那種邏輯關聯性。
因此從微架構上看,CPU擅長的是像作業系統、系統軟體和通用應用程式這類擁有複雜指令排程、迴圈、分支、邏輯判斷以及執行等的程式任務。它的並行優勢是程式執行層面的,程式邏輯的複雜度也限定了程式執行的指令並行性,上百個並行程式執行的執行緒基本看不到。GPU擅長的是圖形類的或者是非圖形類的高度並行數值計算,GPU可以容納上千個沒有邏輯關係的數值計算執行緒,它的優勢是無邏輯關係資料的平行計算。
主頻
GPU執行每個數值計算的速度並沒有比CPU快,從目前主流CPU和GPU的主頻就可以看出了,CPU的主頻都超過了2GHz,甚至3GHz,而GPU的主頻最高還不到2GHz,主流的也就1GHz。所以GPU在執行少量執行緒的數值計算時速度並不能超過CPU。
目前GPU數值計算的優勢主要是浮點運算,它執行浮點運算快是靠大量並行,但是這種數值運算的並行性在面對程式的邏輯執行時毫無用處。
IPC(每個時鐘週期執行的指令數)
這個方面,CPU和GPU無法比較,因為GPU大多數指令都是面向數值計算的,少量的控制指令也無法被作業系統和軟體直接使用。如果比較資料指令的IPC,GPU顯然要高過CPU,因為並行的原因。但是,如果比較控制指令的IPC,自然是CPU的要高的多。原因很簡單,CPU著重的是指令執行的並行性。
另外,目前有些GPU也能夠支援比較複雜的控制指令,比如條件轉移、分支、迴圈和子程式呼叫等,但是GPU程式控制這方面的增加,和支援作業系統所需要的能力CPU相比還是天壤之別,而且指令執行的效率也無法和CPU相提並論。
總結一下:
CPU更適合處理邏輯控制密集的計算任務,而GPU適合處理資料密集的計算任務。並且由於現代CPU的發展,使得CPU與計算機主存的交換速度要遠遠大於GPU與計算機主存的交換速度,因此GPU更適合處理SIMD(SingleInstruction MultiData,單資料多指令)的運算,即將資料放到視訊記憶體中進行多次計算的計算任務。
目前比較流行CPU+GPU的協同計算模型,在這個模型中,CPU與CPU協同工作,各司其職。CPU負責進行邏輯性強的事物處理和序列計算,GPU則專注於執行高度執行緒化的並行處理任務。CPU、GPU各自擁有相互獨立的儲存器地址空間:主機端的記憶體和裝置端的視訊記憶體。
-
4 # xiao狗蛋
CPU更適合處理邏輯控制密集的計算任務,而GPU適合處理資料密集的計算任務。並且由於現代CPU的發展,使得CPU與計算機主存的交換速度要遠遠大於GPU與計算機主存的交換速度,因此GPU更適合處理SIMD(SingleInstruction MultiData,單資料多指令)的運算,即將資料放到視訊記憶體中進行多次計算的計算任務。
目前比較流行CPU+GPU的協同計算模型,在這個模型中,CPU與CPU協同工作,各司其職。CPU負責進行邏輯性強的事物處理和序列計算,GPU則專注於執行高度執行緒化的並行處理任務。CPU、GPU各自擁有相互獨立的儲存器地址空間:主機端的記憶體和裝置端的視訊記憶體
回覆列表
高效能平行計算,最新產品擁有 2688 個 FP64 計算核心,FP64計算效能達到 7.8Tflops;
最新產品提供高達 900GB/s 峰值記憶體頻寬, 幫助應用程式提供 強大的資料訪存支援