Ubuntu 不同版本 cuda 和 cudnn 切換
可能不同的軟件對與 cuda 和 cudnn 的版本有不同的要求,所以需要根據具體的要求來切換其版本。
ubuntu 是支持安裝多個版本的 cuda 的,需要使用某個的版本時切換就可以了。對於 cudnn 則是直接重裝,所謂的重裝其實就是 copy 後創建個軟鏈接就可以了。
安裝 cuda 比較容易,直接運行下載的 sh 文件就可以了。
sudo sh cuda_9.0.176_384.81_linux.run
1. 切換 cuda
首先應該確保環境變量的設置不是 hard code,而是指向軟鏈接,這樣就可以直接通過修改軟鏈接來修改 cuda 的版本。當然 hard code 的方式可以通過直接修改環境變量來修改 cuda 的版本,也是可以的。
通過如下命令進入環境變量文件
sudo gedit ~/.bashrc
檢查關於 cuda 的環境變量設置,如下的設置是 hard code 的,直接指定了 cuda 的版本。
# for cuda9.0
export PATH=/usr/local/cuda-9.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
而下面的設置是指向 /usr/local/cuda 的軟鏈接。
export PATH=/usr/local/cuda/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
export CUDA_HOME=/usr/local/cuda
對於上面這種情況,通過如下指令直接刪除之前的軟鏈接,創建一個指向新的 cuda 版本的軟鏈接即可。
rm -rf /usr/local/cuda #刪除之前創建的軟鏈接
sudo ln -s /usr/local/cuda-10.1 /usr/local/cuda
修改完之後可以查看 cuda 的版本是否已經修改成功。
nvcc -V
2. 切換 cudnn
準確的說切換 cudnn 的過程就是重新安裝一遍 cudnn,因爲 cudnn 的安裝本身就是 copy 一些文件到 cuda 中,然後創建軟鏈接。
sudo cp cuda/include/cudnn.h /usr/local/cuda/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*
cd ~/Downloads
tar zxvf cudnn-9.0-linux-x64-v7.tgz
cd cuda/include/
sudo cp cudnn.h /usr/local/cuda/include/
cd cuda/lib64/
sudo cp lib* /usr/local/cuda/lib64/
cd /usr/local/cuda/lib64/
sudo rm -rf libcudnn.so libcudnn.so.7
sudo ln -s libcudnn.so.7.0.5 libcudnn.so.7 #注意版本對應
sudo ln -s libcudnn.so.7 libcudnn.so