Linux修改Pytorch的CUDA版本


原理

詳細原理參見https://www.cnblogs.com/yhjoker/p/10972795.html
簡單原理就是通過修改$PATH環境變量,pytorch會以最前面的CUDA版本為准
例如,你可能裝過2個版本的cuda

/usr/local/cuda-11.1
/usr/local/cuda-11.0

查看以下兩個環境變量

echo $PATH
echo $LD_LIBRARY_PATH

可以看到我的此shell下,cuda11.0在cuda11.1前面,那么pytorch實際運行的就是11.0版本的cuda
2_echos

修改方法

永久修改當前用戶下的環境變量

  1. 修改 ~/.bashrc 文件
vim ~/.bashrc
  1. 添加
export LD_LIBRARY_PATH=/usr/local/cuda-11.0/lib64:$LD_LIBRARY_PATH
export PATH=/usr/local/cuda-11.0/bin:$PATH
  1. 在當前shell下重新運行 ~/.bashrc 文件
source ~/.bashrc

這樣每次打開新shell的時候會自動運行~/.bashrc文件,以達到永久性修改。(不過最新的chrome ssh安全外殼有毒,需要手動運行一下。。)
不用擔心來回修改版本,source了太多次~/.bashrc文件添加了很多環境變量,你新開一個shell就是了

臨時修改

不多說了,直接運行加的那兩行代碼即可

export LD_LIBRARY_PATH=/usr/local/cuda-11.0/lib64:$LD_LIBRARY_PATH
export PATH=/usr/local/cuda-11.0/bin:$PATH

檢驗效果

老方法,使用pytorch的方法查看

torch.version.cuda

你突然發現,納尼,怎么還是老版本cuda沒變?
假如你頭鐵繼續運行代碼,突然會產生如下的報錯——

NVIDIA GeForce RTX 3090 with CUDA capability sm_86 is not compatible with the current PyTorch installation

最可能的情況:你的pytorch和cudatoolkit分別用pip和conda安裝的。
詳情見這里
例如:你的pytorch用pip安裝的,但是cudatoolkit用conda安裝的,pytorch會檢索pip使用的cudatoolkit版本,而不會查看conda里面的cudatoolkit
解決方法:重裝,去官網要么都用conda、要么都用pip重裝


免責聲明!

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



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