在Nsight Compute中解释计算工作量分析

问题描述 投票:1回答:1

计算工作量分析显示不同计算管道的利用率。我知道在现代GPU中,整数和浮点管线是不同的硬件单元,可以并行执行。但是,不清楚哪个管道代表其他管道的哪个硬件单元。我也找不到在线有关管道的缩写和解释的任何文档。

我的问题是:

1)ADU,CBU,TEX,XU的全名是什么?它们如何映射到硬件?

2)哪些管线使用相同的硬件单元(例如FP16,FMA,FP64使用浮点单元)?

3)现代GPU中的翘曲调度程序可以每个周期调度2条指令(使用不同的流水线)。可以同时使用哪些管道(例如FMA-ALU,FMA-SFU,ALU-Tensor等)?

P.s .:我正在为不熟悉Nsight Compute的用户添加屏幕截图。enter image description here

cuda nsight
1个回答
4
投票

Volta(CC 7.0)和Turing(CC 7.5)SM由4个子分区(SMSP)组成。每个子分区包含

  • warp Scheduler
  • 注册文件
  • 立即常量缓存
  • 执行单位
    • [ALU,FMA,FP16,UDP(7.5+)和XU
    • 以计算为中心的零件上的FP64(GV100)
    • 张量单位

[包含其他几个分区,这些分区包含执行单元和由四个子分区共享的资源,包括

  • 指令缓存
  • 索引常量缓存
  • 划分为标记的RAM和共享内存的L1数据高速缓存
  • 执行单位
    • ADU,LSU,TEX
    • 在非计算部分FP64和Tensor上可以实现为共享执行单元

在Volta(CC7.0,7.2)和Turing(CC7.5)中,每个SM子分区每个周期可以发出1条指令。可以将指令发布到本地执行单元或SM共享执行单元。

  • ADU-地址发散单元。在将指令转发到其他执行单元之前,ADU负责分支/跳转和索引恒定负载的每个线程地址差异处理。
  • ALU-算术逻辑单元。 ALU负责执行大多数整数指令,位操作指令和逻辑指令。
  • CBU-收敛屏障单元。 CBU负责屏障,收敛和分支指令。
  • FMA-浮点乘和累加单位。 FMA负责大多数FP32指令,整数乘法和累加指令以及整数点积。
  • FP16-成对的半精度浮点单元。 FP16单元负责执行成对的半精度浮点指令。
  • FP64-双精度浮点单元。 FP64单元负责所有FP64指令。 FP64通常实现为NVIDIA GPU上的几个不同管道。每个芯片的吞吐量差异很大。
  • LSU-负载存储单元。 LSU负责向全局,本地和共享内存加载,存储和原子指令。
  • Tensor(FP16)-半精度浮点矩阵乘法和累加单位。
  • Tensor(INT)-整数矩阵相乘和累加单位。
  • TEX-纹理单位。纹理单元负责对纹理和表面进行采样,加载和过滤指令。
  • UDP(统一)-统一数据路径-用于执行指令的标量单元,其中对于warp中的所有线程,输入和输出均相同。
  • XU-超越和数据类型转换单元-XU负责特殊功能,例如sin,cos和倒数平方根以及数据类型转换。

0
投票

Volta(CC 7.0)和Turing(CC 7.5)SM由4个子分区(SMSP)组成。每个子分区包含

  • warp Scheduler
  • 注册文件
  • 立即常量缓存
  • 执行单位
    • [ALU,FMA,FP16,UDP(7.5+)和XU
    • 以计算为中心的零件上的FP64(GV100)
    • 张量单位

[包含其他几个分区,这些分区包含执行单元和由4个子分区共享的资源,包括

  • 指令缓存
  • 索引常量缓存
  • 划分为标记的RAM和共享内存的L1数据高速缓存
  • 执行单位
    • ADU,LSU,TEX
    • 在非计算部分FP64和Tensor上可以实现为共享执行单元

在Volta(CC7.0,7.2)和Turing(CC7.5)中,每个SM子分区每个周期可以发出1条指令。可以将指令发布到本地执行单元或SM共享执行单元。

  • ADU-地址发散单元。在将指令转发到其他执行单元之前,ADU负责分支/跳转和索引恒定负载的每个线程地址差异处理。
  • ALU-算术逻辑单元。 ALU负责执行大多数整数指令,位操作指令和逻辑指令。
  • CBU-收敛屏障单元。 CBU负责屏障,收敛和分支指令。
  • FMA-浮点乘和累加单位。 FMA负责大多数FP32指令,整数乘法和累加指令以及整数点积。
  • FP16-成对的半精度浮点单元。 FP16单元负责执行成对的半精度浮点指令。
  • FP64-双精度浮点单元。 FP64单元负责所有FP64指令。 FP64通常实现为NVIDIA GPU上的几个不同管道。每个芯片的吞吐量差异很大。
  • LSU-负载存储单元。 LSU负责向全局,本地和共享内存加载,存储和原子指令。
  • Tensor(FP16)-半精度浮点矩阵乘法和累加单位。
  • Tensor(INT)-整数矩阵相乘和累加单位。
  • TEX-纹理单位。纹理单元负责对纹理和表面进行采样,加载和过滤指令。
  • UDP(统一)-统一数据路径-用于执行指令的标量单元,其中对于warp中的所有线程,输入和输出均相同。
  • XU-超越和数据类型转换单元-XU负责特殊功能,例如sin,cos和倒数平方根以及数据类型转换。
© www.soinside.com 2019 - 2024. All rights reserved.