CUDA on Platform 学习笔记1--GPU硬件架构

CUDA参考学习资料:

  1. CUDA编程-基础与实践 樊哲勇
  2. https://github.com/brucefan1983/CUDA-Programming
  3. CUDA Best Practice Guide , NVIDIA Corp.
  4. CUDA C Programming Guide, NVIDIA Corp.

1.CPU内核组成

CUDA on Platform 学习笔记1--GPU硬件架构_第1张图片

  • Fetch/Decode:取指令、译码单元
  • ALU: 逻辑运算器(Arithmetic Logic Unit)
  • Execution Context: 执行上下文池
  • Data cache:数据缓存
  • 流水线优化单元:如乱序执行、分支断定预测、memory预存取等。

CPU瓶颈
以前,芯片的更新遵循摩尔定律:芯片的集成密度每2年翻一番,成本下降一半,但现在同样面积下芯片的数量越来越多,芯片的能量密度越来越高,散热问题越来越严重;而且芯片运算效率越高,需要读取的数据量越多,要求存储设备的读写速度越来越快,很难要求,传统的单核处理器遇到上述等物理约束, 时钟频率(perf/clock)无法保持线性增长。

2.GPU内核组成

由于上述CPU的多种瓶颈,只能向多核并行系统发展,因而产生GPU(Graphics Processing Unit)。由于GPU只执行简单任务,因此,可以将上述复杂的流水线去掉,进行精简优化 ,得到GPU的内核组成如下,这样在执行单一指令流时候可以更快。
CUDA on Platform 学习笔记1--GPU硬件架构_第2张图片
GPU更关注计算,因此通过将多核组合在一起来增加ALU部分核数,而多核之间需要通信,因此增加了shared memory部分,CUDA核结构图如下:
CUDA on Platform 学习笔记1--GPU硬件架构_第3张图片
上图中每个黄色小方块代表一个CUDA core,也叫Streaming Processor(SP),它在每个时钟周期执行一次乘加指令。
CPU和GPU芯片结构对比如下:
CUDA on Platform 学习笔记1--GPU硬件架构_第4张图片
GPU将更多的空间分配给CUDA core,以空间换时间,提高并行度,加速计算。

3.GPU组成示例

下面是一个GA 100的结构图,由多个Streaming Multiprocessor (SM)组成。

每个SM的架构如下:
CUDA on Platform 学习笔记1--GPU硬件架构_第5张图片

  • 一个GPU中有128个SM,8个GPC,每个GPC有8个TPC,每个TPC有2个SM,因此,每个GPC中有16个SM。
  • 每个SM中有64个FP32的CUDA core,一个GPU中有8192个FP32 CUDA core
  • 每个SM中有4个3代Tensor Core,一个GPU中有512个3代Tensor Core。
  • 6个HBM2(HBM 是 GDDR 存储器的替代品,可用于 GPU 和加速器,HBM2 是目前该类别中最常用的标准,支持高达 2.4Gbps 的数据速率),12个512-bit的memory 控制器

你可能感兴趣的:(CUDA教程,硬件架构,学习)