03CUDA

52 阅读1分钟

流式处理器-SM

  • GPU的并行主要是依靠流式处理器(SM)完成

SM的关键资源如下:

1719412844226.png

  • cuda核心,有很多
  • 共享内存/L1缓存
  • 寄存器文件
  • 加载和储蓄单元
  • 特殊函数单元
  • warps调度

GPU中每个SM都可以支持数百个线程并发执行

以线程块block为单位,向SM分配线程块,多个线程块可被同 时分配到一个可用的SM上

当一个线程块被分配好SM后,就不可以再分配到其他SM上了

线程模型与物理结构

网格中的所有线程块需要分配到SM上进行执行

线程块内的所有线程分配到同一个SM中执行,

但是每个SM上可以被分配多个线程块

线程块分配到SM中后,会以32个线程为一组

进行分割,每个组成为一个wrap

CUDA 采用单指令多线程SIMT架构管理执行线 程,每32个为一组,构成一个线程束。

每个线程束中只能包含同一线程块中的线程

每个线程束包含32个线程

线程束是GPU硬件上真正的做到了并行

线程束数量 = ceil(线程块中的线程数/32)

内存模型

内存结构特点

1719413786853.png

cuda中的内存

1719413888348.png

寄存器(register)

共享内存(shared memory)

本地内存(local memory )

常量内存(constant memory )

纹理内存(texture memory)

全局内存(global memory)

1719414110614.png