天天看點

CUDA 01 - 硬體架構硬體架構

硬體架構

SP

CUDA 01 - 硬體架構硬體架構

SP(Streaming Processor): 也稱為CUDA Core, 是任務執行的基本單元, GPU的并行計算就是多個SM同時進行計算.

SM

CUDA 01 - 硬體架構硬體架構

SM(Streaming Multiprocessor): 由多個SP加上warp scheduler, register, shared memory等資源構成. 和CPU類似, register/shared memory是SM的稀缺資源, 供給駐留線程的使用, 是以也限制了GPU的并行能力.

SIMT

CUDA 01 - 硬體架構硬體架構

SIMT: 具有Tesla架構的GPU具有一組SIMT(Single Instruction, Multiple Thread)多處理器. 他以可伸縮的SMs(Streaming Processors)陣列為中心實作了MIMD(Multiple instruction, Multiple Thread)的異步并行機制, 其中每個多處理器都包含了多個SP(Scale Processor), 為了管理運作各種不同程式的數百個線程, SIMT架構的多處理器會将各個線程映射到一個SP核心, 各個線程使用自己的指令位址和寄存器狀态獨立執行.

每個MP(Mpltiple Processor)都擁有下列四種存儲空間:

  1. Register: 本地32位的寄存器.
  2. Shared Memory: 并行資料緩存或共享存儲器, 由所有SP核心共享.
  3. Constant Memory: 加速從固定存儲空間進行的讀取操作(隻讀), 由所有SP核心共享.
  4. Texture Memroy: 加速從紋理存儲空間進行的讀取操作(隻讀), 每個MP都會通過實作不同尋址模型和資料過濾的紋理單元來通路紋理緩存, 由所有SP核心共享.

Warp

CUDA 01 - 硬體架構硬體架構

SIMT以32個并行線程作為建立, 管理, 排程和執行的基本機關, 這樣的線程組被稱為warp. 當主機CPU上的CUDA程式調用到核心網格的時候, 網格的塊将被枚舉分發到具有可用執行容量的MP, SIMT會選擇一個已經準備好的warp塊, 并将下一條指令發送到這個warp塊的活動程序. 一個warp的各個線程會在一個MP上并發執行.