7

我的内核在 CC 3.0 (Kepler) 上的性能比 CC 2.0 (Fermi) 差。在 Nsight 分析器中,Warp Issue Efficiency图表显示 60% 的时间没有符合条件的扭曲,Issue Stall Reasons图表显示其中 60% 是由于“其他”造成的。

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

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

问题停顿原因

4

1 回答 1

10

在 Nsight Visual Studio Edition 3.0 CUDA Profiler 中,问题效率显示了扭曲停止原因的饼图。停顿的原因是指令获取、执行依赖、数据请求、纹理、同步和其他。

对于 Compute Capability 3.* 设备,Other 类别是由于以下原因导致活动扭曲停止的时间百分比:

  • 执行单元繁忙(减少使用低吞吐量整数操作)
  • 寄存器库冲突(编译器问题有时会因大量使用矢量数据类型而变得更糟)
  • 每个调度程序的扭曲太少

对于 Compute Capability 5.* 和 6.* 设备,Other 类别是由于以下原因导致活动扭曲停止的时间百分比:

  • 寄存器库冲突(编译器问题有时会因大量使用矢量数据类型而变得更糟)
  • 等待解决分支的经线
  • 优先级较低且当前未考虑调度的 warp

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

这些停顿原因归入另一类,因为很难确定开发人员可以采取哪些措施来解决这些问题。

于 2013-03-06T22:31:20.993 回答