gpt4 book ai didi

cuda - 试图了解 nvprof 指标、sm_efficiency 和 warp_execution_efficiency 为零

转载 作者:行者123 更新时间:2023-12-01 01:56:31 25 4
gpt4 key购买 nike

我正在尝试了解 nvprof 指标。我是 CUDA 的新手,因此试图了解哪些指标对性能很重要。

我写了一个内核来计算矩阵之间的绝对差之和。

在 Tegra X1 上运行,它的平均时间约为 47 毫秒,有 1584 个块和每块 1024 个线程。

运行 nvprof 我得到这些指标:

achieved_occupancy         Achieved Occupancy         0.982284    0.982284    0.982284
warp_execution_efficiency Warp Execution Efficiency 0.00% 0.00% 0.00%
sm_efficiency Multiprocessor Activity 0.11% 0.11% 0.11%
branch_efficiency Branch Efficiency 100.00% 100.00% 100.00%
ipc Executed IPC 3.600738 3.600738 3.600738

怎么来的 Warp Execution EfficiencyMultiprocessor Activity这么低,当其他指标这么好?这些是在分析内核的一般性能时要查看的正确指标,对吗?

最佳答案

这里的一个好的答案可能涉及关于 CUDA 执行效率、优化方法和目标以及 nvprof 机制的冗长教程。 .由于您根本没有提供任何代码,因此它必须完全是抽象的和推测性的。

如果您遇到了 nvprof或 CUDA 优化概念,您可能会通过试验获得更好的服务 nvvp ,可视化分析器,其中包含大量引导分析、解释、帮助和专家系统。

要开始探索您的一个问题,sm_efficiency指的是 SM 具有一个或多个激活的经线的时间百分比。由于您的 sm_efficiency非常低,看起来 SM 整体上大部分时间都处于空闲状态 - 它不发出指令。例如,如果我们将其与入住率进行比较,这些几乎是正交的概念。占用率大致是指有多少经线驻留在 SM 上。如果 SM 有一个“完全补充”的经线,那么占用率就会很高。

关于您关于这些是否是“适当指标”的问题,“适当指标”应遵循以下两条轨迹之一:

  • 验证基本优化目标是否已达到。对于 CUDA,其中最基本的与公开足够的并行性和有效使用内存子系统有关。例如,您选择的指标都与有效内存使用无关。
  • 一种分析驱动的优化轨迹,即专注于建立性能限制因素的优化轨迹。有各种演示文稿涵盖了您可以搜索的这些想法。如果您在 Google 上搜索“gtc cuda optimization”,您会发现一些演示文稿很好地展示了基本的 CUDA 优化技术、性能测量和分析驱动的优化。

  • 将此标记为 CW - 其他人可能希望添加他们的想法或最佳实践。

    关于cuda - 试图了解 nvprof 指标、sm_efficiency 和 warp_execution_efficiency 为零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40119862/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com