nvcc和nvidia-smi顯示版本不同


nvcc和nvidia-smi顯示的版本不一致

服務器上安裝了多個版本的cuda,安裝某個python庫時,需要切換一下cuda的版本。而關於切換cuda版本的文章,csdn上已經給出了 很多教程(雖然都是抄來抄去),這里貼出一條,僅供參考:

https://blog.csdn.net/Maple2014/article/details/78574275

而這些教程可能有個問題,就是一旦更改cuda版本,會對所有人的cuda都生效,因為修改了軟鏈接,比較保險的辦法是,修改自己的~/.bashrc文件,在自己的文件中,指定cuda的路徑和鏈接庫的目錄。

具體方法如下,在自己的~/.bashrc文件中寫如下內容:

export PATH="$PATH:/usr/local/cuda-10.1/bin"
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda-10.1/lib64/"
export LIBRARY_PATH="$LIBRARY_PATH:/usr/local/cuda-10.1/lib64"

之后執行source ~/.bashrc,使配置生效。

 

但是按照上面的方法操作后,又出現了一個問題:

nvcc -V # 查看cudnn的版本仍為9.1
# 但是使用nvidia-smi時,查看cuda版本已經切換為了10.1
nvidia-smi

對此,網上很少有解釋,自己也挺困惑的,命名已經在配置文件中進行了修改了,為什么兩個地方查看的cuda版本不同呢?

參考了文章https://www.jianshu.com/p/eb5335708f2a,得到了答案:

nvcc&nvidia-smi

  • nvcc屬於時CUDA的編譯器,將程序編譯成可執行的二進制文件

  • nvidia-smi全稱是NVIDIA System Management Interface,是一種命令行實用工具,用來幫助管理和監控NVIDIA GPU設備的。

  • 當我們安裝一個版本的cuda時,實際上會同時安裝runtime api和driver api,前者對應nvcc后者對應nvidia-smi查看到的。個人理解是,第一次安裝cuda時,nvcc關聯了第一次安裝的版本,並放在了環境變量中的/usr/bin目錄下。

 

而我們前面添加環境變量的方式,是把目標版本的cuda路徑放在了$PATH變量的最后面,查找程序的時候會先查找/usr/bin目錄,所以就無法找到我們修改后的版本了。所以,正確的做法是:

export PATH="/usr/local/cuda-10.1/bin:$PATH"
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda-10.1/lib64/"
export LIBRARY_PATH="$LIBRARY_PATH:/usr/local/cuda-10.1/lib64"

添加我們的cuda路徑在$PATH變量的最前面,這樣就會優先在我們設置的路徑下進行尋找了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM