Ubuntu 多版本Cuda(8.0,9.0)以及CuDnn安裝

教研室服務(wù)器多人使用,由于大家使用不同的框架,或者框架的版本不同,需要對應(yīng)不同版本的cuda,所以今天給服務(wù)器配置了多版本cuda 8.0和9.0


Cuda的下載

目前服務(wù)器上裝有Cuda,本次就是在已有Cuda8.0的基礎(chǔ)上再裝Cuda9.0并配置版本切換。

CUDA Toolkit Download下載,我下載的是cuda_9.0.176_384.81_linux.run

推薦使用 runfile,因?yàn)槭褂?deb可能會將已經(jīng)安裝的較新的顯卡驅(qū)動替換。


Cuda9.0 安裝

進(jìn)入到放置 cuda_9.0.176_384.81_linux.run 的目錄:

sudo chmod +x cuda_9.0.176_384.81_linux.run # 為 cuda_9.0.176_384.81_linux.run 添加可執(zhí)行權(quán)限
./cuda_9.0.176_384.81_linux.run # 安裝 cuda_9.0.176_384.81_linux.run

截取安裝過程中幾個(gè)比較重要的選項(xiàng):


先按q退出說明
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: n # 如果在這之前已經(jīng)安裝好更高版本的顯卡驅(qū)動就不需要再重復(fù)安裝,如果需要重復(fù)安裝就選擇 yes,此外還需要關(guān)閉圖形界面。

Install the CUDA 9.0 Toolkit?
(y)es/(n)o/(q)uit: y

Enter Toolkit Location
 [ default is /usr/local/cuda-9.0 ]: # 一般選擇默認(rèn)即可,也可以選擇安裝在其他目錄,在需要用的時(shí)候指向該目錄或者使用軟連接 link 到 /usr/local/cuda。

/usr/local/cuda-9.0 is not writable.
Do you wish to run the installation with 'sudo'?
(y)es/(n)o: y

Please enter your password: 
Do you want to install a symbolic link at /usr/local/cuda? # 是否將安裝目錄通過軟連接的方式 link 到 /usr/local/cuda,yes or no 都可以,取決于你是否使用 /usr/local/cuda 為默認(rèn)的 cuda 目錄。
(y)es/(n)o/(q)uit: n

Install the CUDA 9.0 Samples?
(y)es/(n)o/(q)uit: n

安裝時(shí)可能會遇到

unsupported compiler x.x.x Use --override to override this check錯(cuò)誤類型
可以使用以下命令解決

./cuda_9.0.176_384.81_linux.run --override  

安裝完成后得到以下信息:

Driver:   Not Selected
Toolkit:  Installed in /usr/local/cuda-9.0
Samples:  Not Selected

Please make sure that
 -   PATH includes /usr/local/cuda-9.0/bin
 -   LD_LIBRARY_PATH includes /usr/local/cuda-9.0/lib64, or, add /usr/local/cuda-9.0/lib64 to /etc/ld.so.conf and run ldconfig as root

To uninstall the CUDA Toolkit, run the uninstall script in /usr/local/cuda-9.0/bin

Please see CUDA_Installation_Guide_Linux.pdf in /usr/local/cuda-9.0/doc/pdf for detailed information on setting up CUDA.

***WARNING: Incomplete installation! This installation did not install the CUDA Driver. A driver of version at least 384.00 is required for CUDA 9.0 functionality to work.
To install the driver using this installer, run the following command, replacing <CudaInstaller> with the name of this run file:
    sudo <CudaInstaller>.run -silent -driver

安裝完成之后在/usr/local/ 中可以找到以下文件:

cuda-8.0 # 筆者之前安裝的cuda-8.0
cuda-9.0 # 剛剛安裝的cuda-9.0
cuda # cuda-8.0 的軟連接

配置Cuda環(huán)境

在~/.bashrc文件末尾添加:

#在文件結(jié)尾處添加
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64
export PATH=$PATH:/usr/local/cuda/bin
export CUDA_HOME=$CUDA_HOME:/usr/local/cuda

多個(gè)cuda版本切換

安裝完cuda9.0過后在 /usr/local/下看的如下:


這里,cuda-8.0和cuda-9.0就是我們安裝的兩個(gè)cuda版本了,而cuda是一個(gè)軟鏈接,它指向我們指定的cuda版本(注意上面在設(shè)置環(huán)境變量時(shí),使用的是cuda,而不是cuda-9.0和cuda-9.1,這主要是為了方便我們切換cuda版本,可以讓我們不用每次都去該環(huán)境變量的值)
可以使用stat命令查看當(dāng)前cuda軟鏈接指向的哪個(gè)cuda版本,如下所示:

stat cuda

  File: 'cuda' -> '/usr/local/cuda-9.0/'
  Size: 20          Blocks: 0          IO Block: 4096   symbolic link
Device: fd00h/64768d    Inode: 162662458   Links: 1
Access: (0777/lrwxrwxrwx)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2018-10-16 18:43:37.973536070 +0800
Modify: 2018-10-16 18:43:34.981552769 +0800
Change: 2018-10-16 18:43:34.981552769 +0800
 Birth: -

可以看到現(xiàn)在筆者的cuda是指向的cuda9.0,再用nvcc --version 命令看下我們當(dāng)前使用的是哪個(gè)版本

nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2017 NVIDIA Corporation
Built on Fri_Sep__1_21:08:03_CDT_2017
Cuda compilation tools, release 9.0, V9.0.176

使用的也是cuda 9.0

當(dāng)我們想使用cuda-8.0版本時(shí),只需要?jiǎng)h除上面的軟鏈接,然后重新建立指向cuda-8.0版本的軟鏈接即可(注意名稱還是cuda,因?yàn)橐cbashrc文件里設(shè)置的保持一致)

sudo rm -rf cuda
sudo ln -s /usr/local/cuda-8.0 /usr/local/cuda

在看下現(xiàn)在使用的cuda是哪個(gè)版本

nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2016 NVIDIA Corporation
Built on Sun_Sep__4_22:14:01_CDT_2016
Cuda compilation tools, release 8.0, V8.0.44

切換成了8.0


修改軟鏈接無法改變Cuda版本,解決方案

筆者在配置的時(shí)候,一步步按照之前的方法配置,但是無論怎樣修改軟鏈接都無法改變使用的cuda版本。并發(fā)現(xiàn)
使用

cat /usr/local/cuda/version.txt

得到版本為9.0,使用

nvcc --version

得到版本為8.0,考慮是之前的環(huán)境配置沒配置好。

解決方案

修改 /etc/profile 文件

sudo vim /etc/profile

在末尾加上

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

再source一下就可以了

source /etc/profile

cuDNN 安裝

安裝完了Cuda過后不要忘了為Cuda安裝cuDNN。
cudnn download下載與Cuda相對應(yīng)版本的cuDNN

我們選擇,cuDNN v7.3.1 Library for Linux
下載完后解壓,得到一個(gè)文件夾 cuda/
執(zhí)行以下命令:

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*

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容