我试图从R上的命令行运行"nvprof“,下面是我是如何做到的:
./nvprof -打印-gpu-跟踪-设备0-分析-指标-导出-profile /home/xxxxx/%p
这给了我一个R提示,我编写了R代码。我也可以用Rscript。
我看到的问题是,当我给出-分析-度量选项时,它给了我许多类似于==44041==重放内核"void ger_kernel(cublasGerParams)“的行。
R过程永远不会结束。我不知道我错过了什么。
发布于 2017-05-25 04:16:03
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选项的更多帮助。
https://stackoverflow.com/questions/44161949
复制相似问题