词汇

流处理器,Stream Processor

SMX

Streaming Multiprocessors

CUDA执行模型是SIMT(单指令多线程),G80会在物理上把若干个(G80是8个)流处理器组合到一起,共享缓存,形成一个SM单元(Stream Multiprocessor)。因为单个SM里的所有流处理器共享缓存,所以CUDA模型里,会把多个Thread打包成一个Block,让Block内的线程在同一个SM里跑(实际执行粒度是Wrap,Block内的Threads不是同时跑的,但是线程切换开销极低,这个和CPU不同,因为显卡的寄存器数量巨大,可以理解为拥有很多个超线程的CPU,对超线程技术有了解很好理解,因为Intel的超线程技术就是分时调用Decoder但每个线程独享寄存器),Block内的线程间可以数据同步,不同Block间线程则不行。YouTube上有个视频很形象的把这种模型类比成OpenMP+MPI。

control 控制单元

DMA

GPUDirect allows you to DMA directly to GPU host memory.