CUDA程序开发——Kepler架构硬件参数解读
通过阅读本文你将收获到:
- 看懂Kepler的硬件架构图
Kepler架构硬件参数
有了对CUDA软硬件层级及其调度的整体认识之后,本文着重介绍一下Kepler架构的细节内容。
首先看下图1,展示了Kepler架构的Device组成模块。解读一下其中的各个模块名称:
- PCI-e总线3.0,负责数据和指令传输,最大速度可以达到单向16GB/s。
- GigaThread engine,负责将Block线程块分配给SM(这里将SMX也视为SM)。
- 6个内存控制器,负责显存的访存,有6个控制器,可以大大提高显存的访存带宽。
- 1536KB的L2 Cache,被所有的SM共享。
- 15个SM,负责运行Block。
接下来看图2,展示了Kepler一个SM内部的组成模块,解读一下其中的各个模块名称:
- Instrution Cache(指令缓存)
- 4个Warp Scheduler(线程束调度器),每一个负责将1个warp分配到32个SP上。
- 8个Dispatch(指令分发器),负责将Kernel中的一条指令发送给32个SP执行。
- 128K的Register文件(寄存器),每个SP都有各自的寄存器文件。
- 192个SP,64个DP Unit(双精度单元),32个SFU(特殊函数单元),32个LD/ST(访存单元),这些都是指令在执行时涉及到的运行单元。
- 64KB的共享内存/L1 Cache,共享内存和L1 Cache一共64KB,二者的比例可以通过函数进行调整。
- 48KB的常量Cache,专门用于缓存常亮内存变量。
- Tex,纹理内存,也是一种专用的缓存,用于缓存只读的内存变量。
本文为博主原创文章,转载请注明链接 https://blog.csdn.net/luroujuan/article/details/88378408