nvprof R gputools 代码永远不会结束

nvprof R gputools code never ends

我正在尝试从 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 进程永远不会结束。我不确定我错过了什么。

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 选项的更多帮助