前言
最近,在重裝的Ubuntu18.04系統(tǒng)上重新配置了深度學(xué)習(xí)要用到的一些環(huán)境野瘦,其中最重要的莫過(guò)于顯卡驅(qū)動(dòng)以及Cuda的安裝描沟,先將安裝步驟以及過(guò)程中的問(wèn)題進(jìn)行總結(jié)。
整個(gè)過(guò)程中沒(méi)有太難的地方鞭光,只是有些細(xì)節(jié)需要注意吏廉,例如后面CUDNN安裝時(shí)就會(huì)講到。
一.安裝顯卡驅(qū)動(dòng)
首先查看系統(tǒng)推薦安裝的顯卡驅(qū)動(dòng)
ubuntu-drivers devices
我的輸出如下
== /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0 ==
modalias : pci:v000010DEd00001E81sv00001043sd00008736bc03sc00i00
vendor : NVIDIA Corporation
manual_install: True
driver : nvidia-driver-435 - distro non-free
driver : nvidia-driver-440-server - distro non-free recommended
driver : nvidia-driver-440 - distro non-free
driver : xserver-xorg-video-nouveau - distro free builtin
可以看到430,440等惰许,之后在驅(qū)動(dòng)下載里面對(duì)應(yīng)選擇自己的顯卡信息席覆,并找到對(duì)應(yīng)版本的顯卡驅(qū)動(dòng)下載。
首先安裝相關(guān)的軟件包
$ sudo apt install make cmake gcc g++ python-pip
$ sudo apt install make git vim wget cmake
之后在驅(qū)動(dòng)目錄下執(zhí)行
$ sudo chmod +x NVIDIA-Linux-x86_64-430.50.run
禁用nouveau并重啟.
$ sudo gedit /etc/modprobe.d/blacklist.conf
# 最后一行加上: blacklist nouveau
$ sudo update-initramfs -u
$ reboot
重啟之后執(zhí)行
$ lsmod | grep nouveau
沒(méi)有任何輸出就代表禁用成功了汹买。
下面開(kāi)始安裝
sudo ./NVIDIA-Linux-x86_64-430.50.run
按照如下步驟安裝
(1)Accept
(2)contiuned install
(3) Unable to find a suitable destination to install 32-bit compatibility libraries. Your system may not be set up for 32-bit compatibility. 32-bit compatibility files will not be installed; if you wish to install them, re-run the installation and set a valid directory with the --compat32-libdir option.
然后這里也沒(méi)什么事佩伤,直接繼續(xù)就可以了聊倔。
(4)would you like to run the nvidia-xconfig utility to automatically update your X configuration file so that the NVIDIA X driver will be used when you restart X ? Any pre-existing X configuration file will be backed up
直接選擇 NO,意思是安裝驅(qū)動(dòng)時(shí)不檢查X服務(wù)
(5) Installation of the NVIDIA Accelerated Graphics Driver for Linux-x86_64(version:390.25) is now complete. Please update your XF86Config or xorg.conf file as appropriate;see the file
/usr/share/doc/NVIDIA_GLX-1.0/README.txt for details.
只有一個(gè)選項(xiàng)生巡,選擇Ok就行了耙蔑。
然后鍵入重啟
$ sudo reboot
重啟之后查看安裝成功沒(méi):
$ nvidia-smi
會(huì)出現(xiàn)如下信息
Sat Aug 8 10:43:36 2020
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 430.50 Driver Version: 430.50 CUDA Version: 10.1 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 GeForce RTX 208... Off | 00000000:01:00.0 On | N/A |
| 20% 36C P8 9W / 250W | 200MiB / 7981MiB | 1% Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| 0 993 G /usr/lib/xorg/Xorg 198MiB |
+-----------------------------------------------------------------------------+
到此為止,顯卡驅(qū)動(dòng)已經(jīng)安裝完成孤荣。
在運(yùn)行驅(qū)動(dòng)程序安裝文件時(shí)候甸陌,可能會(huì)提示很多例如g++版本高、或者32位等問(wèn)題盐股,直接忽視掉即可钱豁,完成安裝后,分辨率回歸正常就證明沒(méi)問(wèn)題了疯汁。
二.安裝CUDA.
首先牲尺,第一步,也是最重要的下載CUDA和CUDNN,一定要按照這里面圈住的找到對(duì)應(yīng)版本的去下載幌蚊,后面CUDNN我會(huì)講到這個(gè)問(wèn)題谤碳。
安裝CUDA
$ sudo sh cuda_10.0.130_410.48_linux.run
然后會(huì)出現(xiàn)很多需要選擇的,只有顯卡驅(qū)動(dòng)項(xiàng)(在第二個(gè))選擇N霹肝,其余幾項(xiàng)全部選擇Y估蹄,其他的就是直接回車(chē)鍵默認(rèn).
之后進(jìn)行環(huán)境配置,在終端輸入:
$ sudo gedit ./bashrc
將下面兩句添加到環(huán)境變量中去:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-10.0/lib64
export PATH=$PATH:/usr/local/cuda-10.0/bin
export CUDA_HOME=$CUDA_HOME:/usr/local/cuda-10.0
保存并退出沫换,使其生效
source ~/.bashrc
三.安裝CUDNN.
這里要著重講一些CUNDD下載的問(wèn)題臭蚁,在上面的下載過(guò)程中一定要選擇和紅色圈起來(lái)的名稱(chēng)位置一樣的CUDNN,除了版本好需要對(duì)應(yīng)成自己的
可以在下載解壓后,看一下目錄結(jié)果是不是/cuda/include讯赏、/cuda/lib垮兑。如果多了其他層級(jí)的目錄,就證明錯(cuò)誤了漱挎,這樣的話(huà)系枪,符號(hào)鏈接庫(kù)是無(wú)法正常使用的,例如我的QT項(xiàng)目應(yīng)用編譯就會(huì)提示libcudnn.so格式錯(cuò)誤磕谅。
之后可以開(kāi)始安裝
cd cuda/include中執(zhí)行如下指令:
$ sudo cp cudnn.h /usr/local/cuda-10.0/include/
cd cuda/lib64中執(zhí)行如下指令:
$ sudo cp libcudnn* /usr/local/cuda-10.0/lib64/
修改權(quán)限
$ sudo chmod a+r /usr/local/cuda-10.0/include/cudnn.h
$ sudo chmod a+r /usr/local/cuda-10.0/lib64/libcudnn*
在終端查看CUDNN版本:
$ cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
輸出顯示如下
DNN_MAJOR -A 2
#define CUDNN_MAJOR 7
#define CUDNN_MINOR 6
#define CUDNN_PATCHLEVEL 4
--
#define CUDNN_VERSION (CUDNN_MAJOR * 1000 + CUDNN_MINOR * 100 + CUDNN_PATCHLEVEL)
檢驗(yàn)安裝
$ cd /usr/local/cuda/samples/1_Utilities/deviceQuery
$ sudo make
$ ./deviceQuery
輸入的最后一句里面result為pass即表示成功私爷。
參考文章
1.Ubuntu18.04下安裝Nvidia驅(qū)動(dòng)和CUDA10.1+CUDNN
2.Ubuntu16.04安裝NVIDIA顯卡驅(qū)動(dòng)
3.下載CUDA和CUDNN
4.Ubuntu 18.04上安裝cuda