【问题标题】:NSight Profiling - How to address "Pipe Busy" stalls?NSight Profiling - 如何解决“Pipe Busy”的问题?
【发布时间】:2014-12-10 22:53:30
【问题描述】:

在使用 NSight 分析我的 CUDA 应用程序后,我在“问题效率”下看到了这个:

单击上图面板中的帮助链接后,我在文档中找到了以下说明:

Pipeline Busy——指令所需的计算资源尚不可用。

关于确定哪些计算资源尚不可用的任何建议,为什么?

【问题讨论】:

  • 如果我的理解是正确的,这意味着warp调度器无法发出指令,因为管道已满。可能是因为你使用了很多low throughput instructions
  • @Cicada 看起来它是算术绑定的。我重新安排了一些东西来改进 ILP,将寄存器使用率从 38 降低到 17,并将失速管道繁忙失速减少到 12% 左右。感谢您的链接。

标签: cuda nsight


【解决方案1】:

您可以运行管道利用率实验来查看什么是忙碌的。来自User Guide

CUDA 设备的每个流式多处理器 (SM) 具有许多 专门执行特定任务的硬件单元。在 芯片级这些单元提供执行管道, warp 调度程序将指令发送到。例如,纹理单元 提供执行纹理提取和执行纹理的能力 过滤。加载/存储单元获取数据并将其保存到内存。 了解这些管道的利用率并知道有多接近 它们对于目标设备的峰值性能是关键 用于分析内核执行效率的信息;和 还允许识别由以下原因引起的性能瓶颈 超额订阅某种类型的管道。

【讨论】:

    猜你喜欢
    • 2015-11-19
    • 1970-01-01
    • 1970-01-01
    • 2011-10-25
    • 2018-07-07
    • 2019-01-30
    • 2019-09-21
    • 2021-09-10
    相关资源
    最近更新 更多