- NVDA GPU並行計算框架
- CPU與NVDA GPU的溝通橋樑:CUDA API
- 可自行指定CPU/ GPU資源
- 可指定GPU的分配方式
- GPU 硬件組成
- GPU 由 SM 組成 stream multiprocessors
- SM 包含 N個 SP stream processors
- 還有Warp selector,Register(256KB), Shared memory (96KB), L1 cache(48KB)
- SP 可以看作 cores
- 程序架構
- Thread :最小单元, 中文称作执行绪/线程
- Block :非常多个thread组成一个block
- Grid :多个block组成一个grid
- Warp :每32个thread组成一组warp, 一组warp中所有thread执行相同的指令
- 執行流程
- kernel function (device) 會將指定的 block and thread 數量分配到 SP 上,然後經由SM 的 wrap selector (wrap scheduler)來分配
- 一個 SP 能執行一個 thread
- warp
- 包含32個thread
- 所有的threads以不同的资料平行计算相同的指令
- 假設一個block有128個thread則會分math.ceil(128/32)組
- 不足32個thread會也會分成一組,所以最好thread是32的倍數才不會造成浪費