GPU的最佳性能

Man*_*ish 5 performance cuda


我被要求测量我的代码使用GPU的"有效"程度/算法实现的峰值性能的百分比.我不知道如何进行这种比较.到目前为止我基本上已经将定时器放入我的代码并测量执行.如何将其与最佳性能进行比较,找出瓶颈可能是什么?(我确实听说过视觉分析器,但无法让它工作..它一直给我"无法加载输出"错误).

jmi*_*loy 1

每张卡都有最大内存带宽和处理速度。例如,GTX 480 带宽为 177.4 GB/s。您需要了解您的卡的规格。

首先要决定的是您的代码是受内存限制还是受计算限制。如果显然是其中之一,那将帮助您专注于衡量正确的“效率”。如果您的程序受内存限制,那么您需要将您的带宽与卡的最大带宽进行比较。

您可以通过计算您读/写的内存量并除以运行时间来计算内存带宽(我使用 cuda 事件进行计时)。这是计算带宽效率(请参阅并行减少的白皮书)并使用它来帮助验证内核的一个很好的示例。


  1. 如果您受 ALU 限制,我不太了解如何确定效率。您或许可以计算(或分析)指令数量,但是该卡的最大数量是多少?

  2. 我也不确定在您的内核介于内存限制和 ALU 限制之间的可能情况下该怎么做。

任何人...?