【问题标题】:nvprof R gputools code never endsnvprof R gputools 代码永不结束
【发布时间】:2017-05-25 12:16:03
【问题描述】:

我正在尝试从 R 上的命令行运行“nvprof”。这是我的做法:

./nvprof --print-gpu-trace --devices 0 --analysis-metrics --export-profile /home/xxxxx/%p R

这给了我一个 R 提示,我编写了 R 代码。我也可以使用 Rscript。

我看到的问题是,当我给出 --analysis-metrics 选项时,它给了我很多类似于 ==44041== 重放内核“void ger_kernel(cublasGerParams)”

R 进程永远不会结束。我不确定我错过了什么。

【问题讨论】:

    标签: r gpgpu nvprof


    【解决方案1】:

    nvprof 不会修改进程退出行为,所以我认为你只是因为你的应用调用了很多内核而遭受了缓慢的痛苦。您有两种选择可以加快速度。

    1.选择性分析指标

    --analysis-metrics 选项可以收集许多指标,这需要重放内核 - 为每次内核运行收集一组不同的指标。

    如果您的应用程序有很多内核调用,这可能需要一些时间。我建议您使用nvprof --query-metrics 命令查询可用的指标,然后手动选择您感兴趣的指标。

    一旦您知道需要哪些指标,您就可以使用nvprof -m metric_1,metric_2,... 查询它们。这样,应用程序将分析更少的指标,因此需要更少的重放,并且运行速度更快。

    2。选择性分析内核

    或者,您只能使用 --kernels <context id/name>:<stream id/name>:<kernel name>:<invocation> 选项分析特定内核。

    例如,nvprof --kernels ::foo:2 --analysis-metrics ./your_cuda_app 将分析名称包含字符串 foo 的内核的所有分析指标,并且仅在其第二次调用时。该选项采用正则表达式,功能非常强大。


    您可以混合搭配以上两种方法来加快分析速度。您将能够使用命令nvprof --help 找到有关这些和其他 nvprof 选项的更多帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-05-17
      • 2013-04-09
      • 2010-12-27
      • 1970-01-01
      • 1970-01-01
      • 2010-11-04
      • 2014-01-15
      • 2011-01-20
      相关资源
      最近更新 更多