nvprof R gputools代码永不结束

时间:2017-05-24 14:53:39

标签: r gpgpu nvprof

我正在尝试运行" nvprof"从命令行开始R.以下是我的工作方式:

./ 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过程永远不会结束。我不确定我错过了什么。

1 个答案:

答案 0 :(得分:1)

nvprof没有修改进程退出行为,所以我认为你只是因为你的app调用很多内核而感到缓慢。你有两种方法可以加快速度。

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