GPU微观物理结构框架
GPU微觀物理結構框架
一.CPU 和 GPU 在物理結構和設計上有何區別
首先需要解釋CPU(Central
Processing Unit)和GPU(Graphics
Processing Unit)這兩個縮寫分別代表什么。CPU即中央處理器,GPU即圖形處理器。其次,要解釋兩者的區別,要先明白兩者的相同之處:兩者都有總線和外界聯系,有自己的緩存體系,以及數字和邏輯運算單元。一句話,兩者都為了完成計算任務而設計。
先直觀地上個示意圖:
從圖中可以看到,CPU和GPU均有自己的存儲(橙色部分,實際的存儲體系比圖示更為復雜),控制邏輯(黃色部分)和運算單元(綠色部分),但區別是CPU的控制邏輯更復雜,而GPU的運算單元雖然較小但是眾多,GPU也可以提供更多的寄存器和程序猿可控的多級存儲資源。
CPU和GPU的差異可以描述在下面表格中:
兩者的區別在于存在于片內的緩存體系和數字邏輯運算單元的結構差異:CPU雖然有多核,但總數沒有超過兩位數,每個核都有足夠大的緩存和足夠多的數字和邏輯運算單元,并輔助有很多加速分支判斷甚至更復雜的邏輯判斷的硬件;GPU的核數遠超CPU,被稱為眾核(NVIDIA Fermi有512個核)。每個核擁有的緩存大小相對小,數字邏輯運算單元也少而簡單(GPU初始時在浮點計算上一直弱于CPU)。從結果上導致CPU擅長處理具有復雜計算步驟和復雜數據依賴的計算任務,如分布式計算,數據壓縮,人工智能,物理模擬,以及其他很多很多計算任務等。
GPU由于歷史原因,是為了視頻游戲而產生的(至今其主要驅動力還是不斷增長的視頻游戲市場),在三維游戲中常常出現的一類操作是對海量數據進行相同的操作,如:對每一個頂點進行同樣的坐標變換,對每一個頂點按照同樣的光照模型計算顏色值。GPU的眾核架構非常適合把同樣的指令流并行發送到眾核上,采用不同的輸入數據執行。在2003-2004年左右,圖形學之外的領域專家開始注意到GPU與眾不同的計算能力,開始嘗試把GPU用于通用計算(即GPGPU)。之后NVIDIA發布了CUDA,AMD和Apple等公司也發布了OpenCL,GPU開始在通用計算領域得到廣泛應用,包括:數值分析,海量數據處理(排序,Map-Reduce等),金融分析等等。
簡而言之,當程序員為CPU編寫程序時,傾向于利用復雜的邏輯結構優化算法從而減少計算任務的運行時間,即Latency。當程序員為GPU編寫程序時,則利用其處理海量數據的優勢,通過提高總的數據吞吐量(Throughput)來掩蓋Lantency。目前,CPU和GPU的區別正在逐漸縮小,因為GPU也在處理不規則任務和線程間通信方面有了長足的進步。另外,功耗問題對于GPU比CPU更嚴重。
CPU和GPU之間的差異(緩存、核心數量、內存、線程數等)可用下圖展示出來:
二.GPU微觀物理結構技術
GPU的微觀結構因不同廠商、不同架構都會有所差異,但核心部件、概念、以及運行機制大同小異。下面將展示部分架構的GPU微觀物理結構。
- NVidia Tesla架構
Tesla微觀架構總覽圖如上。下面將闡述它的特性和概念:
擁有7組TPC(Texture/Processor Cluster,紋理處理簇)
每個TPC有兩組SM(Stream Multiprocessor,流多處理器)
每個SM包含:
o 6個SP(Streaming Processor,流處理器)
o 2個SFU(Special Function Unit,特殊函數單元)
o L1緩存、MT Issue(多線程指令獲取)、C-Cache(常量緩存)、共享內存
除了TPC核心單元,還有與顯存、CPU、系統內存交互的各種部件。 - NVidia Fermi架構
Fermi架構如上圖,它的特性如下:
擁有16個SM
每個SM:
o 2個Warp(線程束)
o 兩組共32個Core
o 16組加載存儲單元(LD/ST)
o 4個特殊函數單元(SFU)
每個Warp:
o 16個Core
o Warp編排器(Warp Scheduler)
o 分發單元(Dispatch Unit)
每個Core:
o 1個FPU(浮點數單元)
o 1個ALU(邏輯運算單元) - NVidia Maxwell架構
采用了Maxwell的GM204,擁有4個GPC,每個GPC有4個SM,對比Tesla架構來說,在處理單元上有了很大的提升。 - NVidia Kepler架構
5. NVidia Turing架構
上圖是采納了Turing架構的TU102 GPU,它的特點如下:
6 GPC(圖形處理簇)
36 TPC(紋理處理簇)
72 SM(流多處理器)
每個GPC有6個TPC,每個TPC有2個SM
4,608 CUDA核·
72 RT核
576 Tensor核
288 紋理單元
12x32位 GDDR6內存控制器 (共384位)
單個SM的結構圖如下:
每個SM包含:
64 CUDA核
8 Tensor核
256 KB寄存器文件
TU102 GPU芯片實物圖:
- GPU架構的共性
所有GPU架構,雖然有所差異,但存在著很多相同的概念和部件:
· GPC
· TPC
· Thread
· SM、SMX、SMM
· Warp
· SP
· Core
· ALU
· FPU
· SFU
· ROP
· Load/Store Unit
· L1 Cache
· L2 Cache
總結
以上是生活随笔為你收集整理的GPU微观物理结构框架的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 3D点云点云分割、目标检测、分类
- 下一篇: GPU核心技术开发