流式处理器-SM
- GPU的并行主要是依靠流式处理器(SM)完成
SM的关键资源如下:
- cuda核心,有很多
- 共享内存/L1缓存
- 寄存器文件
- 加载和储蓄单元
- 特殊函数单元
- warps调度
GPU中每个SM都可以支持数百个线程并发执行
以线程块block为单位,向SM分配线程块,多个线程块可被同 时分配到一个可用的SM上
当一个线程块被分配好SM后,就不可以再分配到其他SM上了
线程模型与物理结构
网格中的所有线程块需要分配到SM上进行执行
线程块内的所有线程分配到同一个SM中执行,
但是每个SM上可以被分配多个线程块
线程块分配到SM中后,会以32个线程为一组
进行分割,每个组成为一个wrap
CUDA 采用单指令多线程SIMT架构管理执行线 程,每32个为一组,构成一个线程束。
每个线程束中只能包含同一线程块中的线程
每个线程束包含32个线程
线程束是GPU硬件上真正的做到了并行
线程束数量 = ceil(线程块中的线程数/32)
内存模型
内存结构特点
cuda中的内存
共享内存(shared memory)
本地内存(local memory )
常量内存(constant memory )
纹理内存(texture memory)
全局内存(global memory)