1. 簡介
1.1. 使用 GPU 的優勢
圖形處理器(GPU)在相近的成本和功耗范圍內,能夠提供比中央處理器(CPU)更高的指令吞吐量和內存帶寬。許多應用程序利用這些優勢,在 GPU 上的運行速度遠超 CPU(參見《GPU 應用》)。其他計算設備(如 FPGA)雖然能效也很高,但其編程靈活性遠不及 GPU。
GPU 與 CPU 的能力差異源于它們的設計目標不同。CPU 旨在以最快速度執行單個線程(即一系列操作),并可并行執行數十個線程;而 GPU 則專為并行執行數千個線程優化(通過犧牲單線程性能來換取更高的整體吞吐量)。
GPU 專注于高度并行計算,其設計將更多晶體管用于數據處理而非數據緩存和流程控制。圖 1 的示意圖對比了 CPU 與 GPU 的芯片資源分配典型差異。
將更多晶體管用于數據處理(例如浮點運算)對高度并行計算極為有利:GPU可通過計算任務掩蓋內存訪問延遲,而無需依賴大型數據緩存和復雜的流控制來規避長延遲——這兩種方案都會顯著增加晶體管開銷。
通常,應