[英]How to profile CUDA code on a headless node?
我正在研究要分析的CUDA應用程序。 到目前為止,我只使用了命令行探查器nvprof
,它僅顯示摘要統計信息。
我考慮過使用GUI分析器NVVP。 問題是我在其上運行應用程序的遠程Linux節點沒有任何GUI(甚至X.org)。 而且,即使我設法在遠程節點上獲得一些X11堆棧,在分析的整個過程中保持我自己的筆記本電腦處於活動狀態也是很乏味的。
我嘗試通過以下方式收集所有必需的信息:
nvprof --analysis-metrics -o application.nvprof ./myapplication
然后,我將輸出文件復制到筆記本電腦上,並在NVVP中查看。 但是,這有三個問題。
首先,將輸出文件加載到NVVP中時,沒有任何文件傳輸信息。 NVVP窗口中根本不顯示它。
其次,調用圖完全失真。 內核啟動之間的間隔至少比內核持續時間大100倍,這使得不可能進行任何依賴關系和流量分析。
最后,我的應用程序使用了大量的GPU內存。 在配置過程中,設備會耗盡內存,而在獨立運行期間則不會。
如何在無頭節點上正確配置CUDA應用程序?
NVVP支持無頭節點作為一等公民。 遠程配置是NVVP的主要功能。
這種工作方式是NVVP在啟用了本地GUI的主機上運行,並在無頭計算機上調用nvprof,在其中生成所需的文件,將文件復制過來並打開它們。 所有這些都是透明且自動發生的。 您可以照常從NVVP運行進一步的分析,它將為您重復這些步驟。
要使用遠程分析,請打開NVVP,然后打開File->New Session
。 添加Connection而不是使用Local
,以輸入無頭計算機的詳細信息。 單擊Manage...
將NVVP指向遠程計算機上的工具箱路徑。 一次性完成設置后,輸入可執行文件的路徑並照常運行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.