在CUDA profiler nvvp中,“共享/全局内存重播开销”是什么意思?怎么计算?

时间:2012-11-25 14:27:59

标签: performance cuda overhead

当我们使用CUDA个探索者nvvp时,有几个“开销”与指令相关,例如:

  • 分支发散开销;
  • 共享/全局记忆重播开销;和
  • 本地/全局缓存重播开销。

我的问题是:

  1. 导致这些开销的原因是什么?
  2. 他们是如何计算的?
  3. 同样,如何计算全局负载/存储效率?
  4. 附件:我发现在CUDA5工具包中打包的“CUDA Profiler用户指南”中计算这些开销的所有公式。

1 个答案:

答案 0 :(得分:2)

您可以在此处找到问题的一些答案:

Why does CUDA Profiler indicate replayed instructions: 82% != global replay + local replay + shared replay?

  

重播说明(%)这给出了百分比   内核执行期间重放的指令。重播说明   是指令数量之间的差异   实际上是由硬件发出的指令数量   由内核执行。理想情况下,这应该为零。这是   计算为100 *(发出指令 - 执行指令)/   发出的指示

     

全局内存重播(%)重播说明的百分比   由于全局内存访问而导致的。计算结果为100 *(l1   全局负载未命中)/发布指令

     

本地内存重播(%)重播指令所造成的百分比   由于本地内存访问。计算结果为100 *(l1 local   加载未命中+ l1本地商店未命中)/发出指令

     

共享银行冲突重播(%)重播的百分比   由于共享内存库冲突导致的指令。这是   计算为100 *(l1共享冲突)/发出指令