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 选项的更多帮助
我正在尝试从 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
.