2017-05-24 81 views
0

我試圖從命令行中運行R. 「nvprof」 這裏是我正在做它:nvprof [R gputools代碼永遠不會結束

./nvprof --print-GPU-跟蹤--devices 0 - -analysis-metrics -export-profile/home/xxxxx /%p R

這給了我一個R提示符並且我寫了R代碼。我也可以用Rscript來做。

的問題,我看到的是,當我給--analysis度量選項它給了我很多類似 == == 44041重播內核「無效ger_kernel(cublasGerParams)」

和R過程永遠不會結束線。我不知道我錯過了什麼。

回答

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選項的更多幫助。

相關問題