1. 程式人生 > >Ubuntu安裝多版本cuda 多版本之間切換

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 安裝

進入到放置 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下載

安裝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

切換程式