1. 程式人生 > >CUDA硬體架構知識

CUDA硬體架構知識

本博文是根據中科大資訊學院譚立湘老師的課件加上自己的理解整理出來的

************************************************************************************

1.NVIDIA的GPU顯示卡歷程:

Tesla->Fermi->Kepler->Maxwell->Pascal->Volta->Turing(2018)

2.體系結構相關術語:

  • SP(Streaming Processor):流處理器是GPU運算的最基本計算單元=core。

  • SFU(Special Function Unit):特殊函式單元用來執行超越函式指令,比如正弦、餘弦、平方根等函式。

  • Shadercore(渲染核/著色器),SP的另一個名稱,又稱為CUDA core,始於Fermi架構

  • DP (雙精度浮點運算單元)

  • SM(Streaming Multiprocessors):流式多處理器是GPU架構中的基本計算單元,也是GPU效能的源泉,由SP、DP、SFU等運算單元組成。這是一個典型的陣列機,其執行方式為SIMT(單指令多執行緒),區別於傳統的SIMD(單指令流多資料流),能夠保證多執行緒的同時執行。

Tesla的SM:

由8個SP、2個SF和一個執行雙精度運算的DP組成,同時還包含了暫存器、共享儲存、常量儲存等單元。

  • SMX: Kepler架構中的SM

  • SMM: Maxwell架構中的SM

       無論是SMM還是SMX還是SM都是一回事

  • TPC(Thread Processing Cluster)執行緒處理器簇:由SM和L1 Cache組成,存在於Tesla架構中。

  • TPC(Texture Processing Cluster)紋理處理器簇:出現在Pascal架構中。

Tesla架構的TPC:

2~3個SM配合L1 Cache構成TPC,Tesla架構主要核心型號有G80和GT200 每個TPC均由一個SM控制器進行統一控制。

  • GPC(Graph Processing Cluster)圖形處理器簇:類似於TPC,是介於整個GPU和SM間的硬體單元,始於Fermi構架。

  • SPA(Scalable streaming Processor Array)可擴充套件的流處理器陣列:所有處理核心和快取記憶體的總和,包含所有的SM、TPC、GPC。與儲存器系統共同組成GPU構架。

  • MMC(MeMoryController)儲存控制器:控制儲存訪問的單元,合併訪存。每個儲存控制器可以支援一定位寬的資料合併訪存。

  • ROP(raster operation processors)光柵操作單元

  • LD/ST(Load/Store Unit)儲存單元

3.雙warp排程機制
在每個SM前端都有兩個執行緒束排程器(Warp Scheduler)和兩個指令分發單元(Instruction Dispatch Unit),並且和SM 其它部分完全獨立,指令分發單元和執行硬體之間有一個完整的交叉開關,每個單元都可以向SM內的任何單元分配執行緒。
SM 是以warp為單位排程執行緒的,每一個SM 的兩個warp排程單元和兩個指令分發單元,允許同時啟動和執行兩個warp。
Fermi雙warp 排程機制可以同時啟動兩個warp,並且將每個warp的一條指令分發到一組16個CUDA Core上、16 個存取單元中或者是4 個SFU上執行。因為warp 彼此單獨執行,所以Fermi的排程單元不需要檢查指令流之間的相關性。

  • Warp(執行緒束):32執行緒 。SM內以warp為單位並行執行

  • –Warp內的執行緒執行同一條指令

  • (步調一致)

  • –Half-warp是儲存操作的基本單位

  • ***************************************************************************************************************
  •  CUDA中grid、block、thread、warp與SM、SP的關係<-可以看這裡

每一代架構內容太多了,如果有需要具體架構內容,可以留言