CUDA程序开发——Kepler架构硬件参数解读

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。
CUDA程序开发——Kepler架构硬件参数解读_第1张图片 图1. Kepler架构的Device组成模块

接下来看图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,纹理内存,也是一种专用的缓存,用于缓存只读的内存变量。
CUDA程序开发——Kepler架构硬件参数解读_第2张图片 图2. Kepler架构的SM组成模块图

 

本文为博主原创文章,转载请注明链接 https://blog.csdn.net/luroujuan/article/details/88378408

你可能感兴趣的:(CUDA)