Ubuntu安裝多版本cuda 多版本之間切換
Ubuntu安裝多版本cuda 多版本之間切換
由於實驗室有多人使用,而不同人用不同版本的TensorFlow-gpu,所以依賴的cuda版本也不一樣,需要自由方便的切換。
cuda的下載
到 CUDA Toolkit Download 下載所需版本,以 cuda_9.0.176_384.81_linux.run為例:
https://developer.nvidia.com/cuda-90-download-archive
建議選擇使用 .run 檔案安裝,因為使用 .deb可能會將已經安裝的較新的顯示卡驅動替換。
cuda 安裝
進入到放置 cuda_9.0.176_384.81_linux.run 的目錄:
./cuda_9.0.176_384.81_linux.run # 安裝 cuda_9.0.176_384.81_linux.run
特別注意,如果之前已經裝過驅動,Install NVIDIA Accelerated Graphics Driver選擇no,其他都預設就好
如果要裝驅動,需要把圖形的那個程式關掉,不然會報錯。
# wangyunpeng @ user-SYS-7048GR-TR in /data/wangyunpeng/download [20:24:50] C:15 $ ./cuda_9.0.176_384.81_linux.run Logging to /tmp/cuda_install_9515.log Using less to view the EULA. Do you accept the previously read EULA? accept/decline/quit: accept Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 384.81? (y)es/(n)o/(q)uit: no Install the CUDA 9.0 Toolkit? (y)es/(n)o/(q)uit: yes Enter Toolkit Location [ default is /usr/local/cuda-9.0 ]: /usr/local/cuda-9.0 is not writable. Do you wish to run the installation with 'sudo'? (y)es/(n)o: yes Please enter your password: Do you want to install a symbolic link at /usr/local/cuda? (y)es/(n)o/(q)uit: no Install the CUDA 9.0 Samples? (y)es/(n)o/(q)uit: no Installing the CUDA Toolkit in /usr/local/cuda-9.0 ...
cudnn的下載與安裝##
下載與cuda對應的cudnn
https://developer.nvidia.com/rdp/cudnn-download
安裝cudnn,直接命令列解壓然後複製lib64和include資料夾到usr/local/cuda-9.0
# Installing from a Tar File sudo cp cuda/include/cudnn.h /usr/local/cuda-9.0/include sudo cp cuda/lib64/libcudnn* /usr/local/cuda-9.0/lib64 sudo chmod a+r /usr/local/cuda-9.0/include/cudnn.h /usr/local/cuda-9.0/lib64/libcudnn*
cuda版本的自由切換
特別注意
使用如下命令切換到安裝目錄,其本質切換就是改cuda這個硬連結
cd /usr/local
stat cuda
還需要注意的是,要改**/etc/profile下面的路徑
把類似之前寫的,cuda-版本號的地址,全都新改成cuda這個硬連結
當然使用zsh要改zshrc,同樣把bashrc裡的也改掉
vi ~/.bashrc
vi ~/.zshrc
一般來說把LD_LIBRARY_PATH這個環境變數改好就能正常使用tensorflow了
但是為了後面方便切換cuda8和cuda9,要把下面的環境變數,一律改成那個硬連結cuda**
export PATH="$PATH:/usr/local/cuda-8.0/bin"
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda-8.0/lib64/"
export LIBRARY_PATH="$LIBRARY_PATH:/usr/local/cuda-8.0/lib64"
改成–>
export PATH="$PATH:/usr/local/cuda/bin"
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda/lib64/"
export LIBRARY_PATH="$LIBRARY_PATH:/usr/local/cuda/lib64"
切換程式
在上面那些環境變數都配置好的前提下,為了自如地切換cuda8和cuda9,寫了下面的指令碼
執行cuda9切換到cuda8,編輯指令碼9t8
vi 9t8
chmod +x 9t8
執行cuda8切換到cuda9,編輯指令碼8t9
vi 8t9
chmod +x 8t9