微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

NSIGHT 计算:SOL SM 与 Roofline

如何解决NSIGHT 计算:SOL SM 与 Roofline

我在 cuda 内核上运行了 cuda-11.2 nsight-compute

它报告 SOL SM 为 79.44%,我认为这非常接近最大值。 SOL L1 为 48.38%

当我检查 Roofline 图表时,我发现我的测量结果与最佳性能相去甚远。

实现4.7 GFlop/s。

屋顶线峰值93 GFlop/s 左右。

我还看到 ALU 管道利用率为 80+%

那么,如果 ALU 管道得到充分利用,根据屋顶线图,为什么实现的性能会如此低?

profile result

请注意,这是在 RTX 3070 上,单精度峰值为 17.6 TFlop/s:

peak

更新

我想我知道这里发生了什么......@robert-crovela 让我走上了正确的轨道,表明 ALU 是整数运算,因此不包括在内。并且这些不是唯一不包括在内的操作!

屋顶折线图仅显示 fp32 和 fp64 操作,而不显示 fp16 操作。

我的代码使用半精度浮点数,这使得 Roofline 图表不适用于我的代码,我怀疑。

解决方法

那么,如果 ALU 管道得到充分利用,根据屋顶线图,为什么实现的性能会如此低?

因为 ALU 管道 has nothing to do with floating point 和屋顶线图本质上只是关于浮点。

如我链接的答案所示,ALU 管道处理:

大多数整数指令、位操作指令和逻辑指令

这种管道利用率很可能是限制内核性能的一个因素,因此,您运行的 FLOPs/s 速率/吞吐量低于其他可实现的浮动-点明智(即屋顶线)。

与 (FP32/FP64) 浮点相关的项目是 fma、fmaheavy、fp32 和潜在的 Tensor。这些都在大约 40% 或以下处于活动状态,因此您不会使任何这些管道最大化。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。