Package | Windows10 CUDA10.2 JDK8 環境下安裝NVidia Visual Profiler(nvvp)安裝Bug筆記

 

背景

最近需要具體分析CUDA程序的GPU佔用情況。除了使用常見的clock、gettimeofday計時分析程序的效率之外,還可以使用nvidia推出的nvprof進行具體的GPU指令耗時分析,爲了方便分析,可以使用nvidia visual profiler對nvprof生成的分析報告進行可視化。

官方鏈接:https://developer.nvidia.com/nvidia-visual-profiler

 

實驗環境

CUDA實驗環境是Ubuntu18.04+Titan GPU,同樣可以在windows上配置跑CUDA。

可視化工具nvvp的安裝環境是Windows10+筆記本自帶nvidia顯卡。(因爲最近都遠程2333,所以可視化只能在筆記本了)

 

實驗準備

1. 使用Ubuntu環境下的nvprof工具生成待可視化的目標文件。

假設CUDA程序編譯通過後得到可執行文件test,使用nvprof運行test程序,記錄gpu使用情況並保存爲test_prof,輸入如下指令:

nvprof -o test_profile ./test

這個過程可能會遇到bug,我的問題描述無法復現(= =),解決方法是關掉unified-memory-profiling即可,指令如下:

nvprof --unified-memory-profiling off -o test_profile ./test

此時,屏幕上會輸出該CUDA程序的一些profile統計的文字表格數據,並且在實驗環境中保存了nvprof的記錄文件test_profile。

 

2. 下載test_profile到可視化路徑。

我的情況是將該文件傳到windows上,如果都在ubuntu上做實驗,拷貝即可。

 

Nvidia Visual Profiler nvvp安裝

這部分坑太多了,必須得單開一個大節來記錄。

1. 安裝 nvidia visual profiler

搜索引擎輸入nvidia visual profiler即可找到官方鏈接:https://developer.nvidia.com/nvidia-visual-profiler

點擊下載Download按鈕,即跳轉到下載頁面,可以發現nvvp是集成在CUDA Toolkit裏的,安裝CUDA即可。大家根據實際的實驗環境選擇對應的安裝包,我的選項如下:

下載完成後,雙擊.exe,選定安裝目錄,一直點擊next下一步就行。整個安裝過程耗時還挺久的,成功之後可以在菜單欄看見NVIDIA CUDA TOOLKIT文件夾。沒有的話也可以直接到安裝目錄下找。通常默認安裝目錄是:

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2

這麼可以看到默認的安裝版本是10.2,進入目錄即可看到安裝的相關庫和工具,而nvvp可執行文件就在目錄:

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\libnvvp

此時,如果大家雙擊正常打開了工具,那麼祝賀你,可以跳轉到第3步驟,沒有則繼續看第2。

 

2. 安裝JDK

雙擊nvvp可執行文件,跳出彈窗報錯:

a java runtime environment or java development kit must be available in order to run nvvp

搜索問題的解決方案,發現很多人是在啓動eclipse時遇到這個問題。初步推斷是環境裏缺少jdk導致的,於是我下載安裝了最新的jdk13,然後又遇到了類似的問題,還是java類的報錯,查看log文件即可看見報錯信息:

java.lang.RuntimeException: Application "com.nvidia.viper.application.application" could not be found in the registry.

查找解決方案是因爲版本不匹配導致的,nvvp和jdk8適配。然後重新安裝下載jdk8,同學們如果沒有安裝java環境,建議直接安裝jdk8。

jdk8官網鏈接:https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html

根據實驗環境選擇合適的安裝包即可。windows下的好處就是直接雙擊就能安裝了。默認的安裝路徑:

C:\Program Files\Java\jdk1.8

注意:此時還需要配置一下windows系統環境變量。

打開控制面板,找到系統,點擊編輯系統環境變量,點擊環境變量,則可以看見用戶的環境變量和系統的環境變量。

我們需要對系統的環境變量進行修改,增加jdk的路徑。點擊系統變量裏的Path(庫路徑),點擊編輯或者雙擊。

點擊右側的新建new,將java的bin路徑粘貼進去,我的情況即是在Path裏新建一條內容如下:

C:\Program Files\Java\jdk1.8\bin

然後點擊確認/應用,等等。此時jdk就配置完成了,然後重啓雙擊nvvp,或者在powershell裏輸入./nvvp.exe重新啓動也行。

 

3. 設置CUDA庫路徑

到達第3步的朋友,恭喜你,已經快要成功了!

在配置完jdk之後,nvvp已經可以正常打開,但是在點擊File -> New Session/Open 的時候會報錯,提示:

unable to locate CUDA libraries

沉住氣,已經安裝了CUDA但是還沒有找到,說明配置中出了紕漏。再一次查看系統環境變量,看到CUDA_PATH和CUDA_PATH_V10_2已經自動設置。搜索解決方案,需要在Path變量裏增加對CUDA庫的搜索路徑。

和jdk配置相似,點擊Path->編輯->新建,輸入路徑如下:

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\extras\CUPTI\lib64

然後OK/應用,關閉環境配置,重啓nvvp。

 

嗒噠,可以正常運行了!(今天語氣詞有點多,最近被虐的比較慘= =)然後點擊File->Open,打開之前下載好的test_profile,即可看見GPU的使用記錄了。開始好好分析問題吧!

(圖片來自網絡,侵刪)

 

 

 

題外話:

今天是在家隔離的第32天,又是26日了。過去這段時間發生了太多,看到了很多,思考了很多,凌亂過、慌張過、平靜過、疲憊過,但最終,我們還是要重新出發。新的一年,希望大家都身體健康,平平安安。祝好~

 

 

 

 

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章