一、CUDA-10.1安裝:
說明:NVIDIA驅動版本需要與CUDA版本對應,具體參考下圖。
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIwczX0xiRGZkRGZ0Xy9GbvNGL2EzXlpXazxSP4cVWwh2MihGbHVWd5clYshnMMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnLwcjN2QDOyEjMyIDNwAjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
1. 下載下傳cuda安裝包:
-
cuda官網下載下傳:
https://developer.nvidia.com/cuda-10.1-download-archive-update2?target_os=Linux&target_arch=x86_64&target_distro=Ubuntu&target_version=1604&target_type=runfilelocal
- 根據系統資訊選擇對應的版本,下面采用runfile方式安裝:
Ubuntu16.04安裝CUDA-10.1及cuDNN-v7.6
2. 下載下傳完後,用MD5檢驗:
- 建議将下載下傳的cuda_10.1.243_418.87.00_linux.run放在home目錄下。
- 用MD5檢驗,輸入以下指令,出現類似以下資訊即可。如果序号不和,得重新下載下傳:
md5sum cuda_10.1.243_418.87.00_linux.run
3. 安裝前,首先要禁用 nouveau驅動:
(因安裝NVIDIA驅動時已經禁用),在終端運作:
lsmod | grep nouveau
- 若無内容輸出,則表示禁用成功。
- 如果有輸出則代表nouveau正在加載,需要手動禁掉nouveau,可參考上篇部落格安裝NVIDIA驅動時的操作。
4. 按 Ctrl+Alt+F1 至 Ctrl+Alt+F6(其中任意一個)進入指令行界面:
登入賬戶
5. 關閉圖形化界面:
sudo service lightdm stop
6. 進行安裝:
sudo sh cuda_10.1.243_418.87.00_linux.run --no-opengl-libs
!!!重點:要麼在此處加上 --no-opengl-libs 選項,要麼在後面通過互動式界面進行手動選擇。建議在這裡加上!!!
- 執行指令後,稍等一會兒,會出現互動界面,輸入 accept;
- 然後出現選擇頁面進行手動設定(如是否安裝NVIDIA驅動及驅動設定),因上篇部落格已安裝過最新的NVIDIA驅動,是以這裡不再安裝NVIDIA驅動,即Driver項不勾選,類似下圖!
Ubuntu16.04安裝CUDA-10.1及cuDNN-v7.6 -
若前面沒有加 --no-opengl-libs 選項,則此處要在options裡手動勾選do not install OpenGL項,即不安裝OpenGL!最後選擇 install .
!!!注意:若不小心安裝了 OpenGL,則後面會遇到循環登陸的問題,原因就是 NVIDIA 顯示卡的 OpenGL 庫覆寫了目前 Intel 顯示卡的庫。解決辦法是再登入到文本指令行模式,用以下指令先解除安裝 CUDA 和 NVIDIA 驅動,再按正确的步驟重新安裝 NVIDIA 驅動和 CUDA:
sudo /usr/local/cuda-10.1/bin/cuda-uninstaller
sudo /usr/bin/nvidia-uninstall
(NVIDIA 驅動安裝可參考上一篇部落格)
7. 安裝完成後,重新開機電腦,檢查Device Node Verification:
輸入以下指令:
ls /dev/nvidia*
可能出現a、b兩種結果,請對号入座。
a. 若結果顯示:
/dev/nvidia0 /dev/nvidiactl /dev/nvidia-uvm
或顯示出類似的資訊,應該有三個(包含一個類似/dev/nvidia-nvm的),則表示安裝成功。
b. 也可能會是這樣:
ls: cannot access/dev/nvidia*: No such file or directory
或是這樣的,隻出現:
/dev/nvidia0 /dev/nvidiactl
即a中的一個或兩個,但沒有/dev/nvidia-num,表示檔案顯示不全,則進行如下操作:
sudo vim /etc/rc.local
- 如果你是第一次打開這個檔案,它應該是空的(除了一行又一行的#注釋項外)。檔案的第一行是:
#!/bin/sh -e
把-e去掉(這步很重要,否則它不會加載這文本的内容)。
- 然後把下列内容複制到exit 0之前,儲存退出。
/sbin/modprobe nvidia
if [ "$?" -eq 0 ]; then
#Count the number of NVIDIA controllers found.
NVDEVS=`lspci | grep -i NVIDIA`
N3D=`echo "$NVDEVS" | grep "3D controller" | wc -l`
NVGA=`echo "$NVDEVS" | grep "VGA compatible controller" | wc -l`
N=`expr $N3D + $NVGA - 1`
for i in `seq 0 $N`; do
mknod -m 666 /dev/nvidia$i c 195 $i
done
mknod -m 666 /dev/nvidiactl c 195 255
else
exit 1
fi
/sbin/modprobe nvidia-uvm
if [ "$?" -eq 0 ]; then
#Find out the major device number used by the nvidia-uvm driver
D=`grep nvidia-uvm /proc/devices | awk '{print $1}'`
mknod -m 666 /dev/nvidia-uvm c $D 0
else
exit 1
fi
8. 重新開機,再次輸入以下指令:
ls /dev/nvidia*
若顯示以下三個檔案,則說明安裝成功;若沒有,檢查寫入的内容是否正确,并重新開機後再次檢視:
/dev/nvidia0 /dev/nvidiactl /dev/nvidia-uvm
9. 設定環境變量,寫入 /etc/profile 檔案:
在終端中輸入:
sudo gedit /etc/profile
在打開的檔案末尾,添加以下兩行(64位系統為lib64,32位系統為lib):
export PATH=/usr/local/cuda-10.1/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-10.1/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
儲存檔案,并重新開機。因為source /etc/profile是臨時生效,重新開機電腦才是永久生效。
10. 重新開機電腦後,檢查上述的環境變量是否設定成功:
- 驗證驅動版本,輸入:
cat /proc/driver/nvidia/version
結果顯示:
- 驗證CUDA Toolkit,輸入:
nvcc -V
結果顯示:
11. 嘗試編譯cuda提供的例子:
打開終端,輸入:
cd /home/xxx/NVIDIA_CUDA-10.1_Samples
make
系統就會自動進入到編譯過程,整個過程大概需要十幾到二十分鐘,請耐心等待。(第一次運作時可能會報錯,提示的錯誤資訊可能會是系統中沒有gcc,解決辦法就是通過指令重新安裝gcc就行,在終端輸入:$ sudo apt-get install gcc 安裝完gcc後, 再make就正常了。)
如果編譯成功,最後會顯示Finished building CUDA samples,如下圖所示:
運作編譯生成的二進制檔案。編譯後的二進制檔案預設存放在NVIDIA_CUDA-10.1_Samples/bin中,接着在終端中輸入:
cd /home/xxx/NVIDIA_CUDA-10.1_Samples/bin/x86_64/linux/release #其中xxx是你自己的使用者名
./deviceQuery
結果如下圖所示,看到 Result = PASS 代表 CUDA 安裝且配置成功,若失敗 Result = FAIL:
最後再檢查一下系統和 CUDA-Capable device 的連接配接情況。在終端輸入:
./bandwidthTest
顯示如下圖檔,則代表成功:
二、cuDNN-v7.6安裝:
若之前安裝過,需先删除舊版本的cuDNN:
sudo rm -rf /usr/local/cuda/include/cudnn.h
sudo rm -rf /usr/local/cuda/lib64/libcudnn*
1. 從Nvidia官網下載下傳對應版本的安裝檔案:
官網:https://developer.nvidia.com/rdp/cudnn-archive
這裡選擇 Installing From A Tar File 的方式進行安裝,是以點選 cuDNN Library for Linux 進行下載下傳。
2. 解壓下載下傳的檔案:
可以看到cuda檔案夾:
tar -xvf cudnn-10.1-linux-x64-v7.6.3.30.tgz
3. 複制以下檔案到 CUDA Toolkit 目錄,并改變檔案的權限:
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*
4. 檢視cudnn版本:
在終端輸入:
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
出現如下圖所示的版本資訊,說明安裝成功:
大功告成啦!