什么是“其他”问题由Nsight剖析器显示的失速原因?

时间:2013-02-15 03:22:33

标签: cuda profiling

我的内核在CC 3.0(开普勒)上表现不佳,而不是CC 2.0(费米)。在Nsight剖析器中,Warp Issue Efficiency图表显示60%的时间,没有符合条件的扭曲,Issue Stall Reasons图表显示其中60%是由于“其他”。

我想知道其他问题的停滞原因是什么以及我可以做些什么来减少它们。

CUDA 5.0。 / Nsight 3.0。 RC / CC 3.0。

Issue Stall Reasons

1 个答案:

答案 0 :(得分:9)

在Nsight Visual Studio Edition 3.0 CUDA Profiler中,Issue Efficiency显示了经纱失速原因的饼图。停顿的原因是指令获取,执行依赖,数据请求,纹理,同步和其他。

对于Compute Capability 3. * devices其他类别是由于以下原因导致活动warp停顿的时间百分比:

  • 执行单元忙(减少使用低吞吐量整数操作)
  • 注册银行冲突(编译器问题,有时可能因为大量使用矢量数据类型而变得更糟)
  • 每个调度程序的warp太少

对于计算能力5. *和6. *设备,其他类别是由于以下原因而停止活动warp的时间百分比:

  • 注册银行冲突(编译器问题,有时可能因为大量使用矢量数据类型而变得更糟)
  • 等待解决分支的扭曲
  • 较低优先级的warp,目前尚未考虑进行安排

对于5. *和6. *,尤其是gp100,如果内核每个warp调度程序达到32个warp,则最后一个原因可能非常高(~75%)。

由于很难确定开发人员可以采取哪些措施来解决这些问题,因此这些停顿原因会分组到另一个类别中。