ubuntu上安裝NVIDIA驅動、CUDA、CUDNN
Ubuntu18.04環境下的安裝:
主要參考下面這個博客:
https://blog.csdn.net/u010801439/article/details/80483036
https://blog.csdn.net/ice__snow/article/details/80144503
1.安裝GPU英偉達驅動(針對ubuntu18.04)
step .1:首先,檢測你的NVIDIA圖形卡和推薦的驅動程序的模型。執行命令:
$ ubuntu-drivers devices
輸出結果為:
== /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0 == modalias : pci:v000010DEd00001180sv00001458sd0000353Cbc03sc00i00 vendor : NVIDIA Corporation model : GK104 [GeForce GTX 680] driver : nvidia-304 - distro non-free driver : nvidia-340 - distro non-free driver : nvidia-384 - distro non-free recommended driver : xserver-xorg-video-nouveau - distro free builtin == cpu-microcode.py == driver : intel-microcode - distro free
從中可以看到,這裏有一個設備是GTX 680 ,對應的驅動是NVIDIA -304,340,384 ,而推薦是安裝384版本的驅動。
step.2,安裝驅動
你可以選擇,安裝所有推薦的驅動,如下命令
$ sudo ubuntu-drivers autoinstall
你也可以選擇,只安裝其中一個驅動,命令如下
$ sudo apt install nvidia-340
OK 驅動安裝完成,重新啟動
4.安裝CUDA(針對18.04)
安裝CUDA 這裏需要註意;
咱們需要根據cuDNN 來選擇,如圖,首先,cuda只能支持17.04,16.04的ubuntu 下載安裝,但,實際上,有點類似於word一樣(高版本word能打開低版本的word文件 .)18.04版本的系統,能夠安裝16.04版本對應的CUDA。
目前cuda 最高版本為9.2,且只支持 16.04,17.04 這兩個系統,而且,我們安裝完CUDA 之後還需要安裝cuDNN。
那麽cuDNN 的版本又有什麽選擇呢,如下
首先,根據cuDNN 的版本,目前,較為完善的,是cuDNN v7.0.5 ,其適用於 CUDA 9.1 版本,所以,咱們在選擇安裝cuda的時候,選擇 CUDA 9.1。下載地址
按下圖進行選擇
對應的有一下四個文件,需要統統下載,第一個是主文件,後3個相當於補丁。
開始安裝:
step .1 GCC 降級
由於CUDA 9.0僅支持GCC 6.0及以下版本,而Ubuntu 18.04預裝GCC版本為7.3,
故手動進行降級:
step .1 GCC 降級
由於CUDA 9.0僅支持GCC 6.0及以下版本,而Ubuntu 18.04預裝GCC版本為7.3,
故手動進行降級:
sudo apt-get install gcc-4.8 sudo apt-get install g++-4.8
裝完後進入到/usr/bin目錄下
$ls -l gcc*
會顯示以下結果
lrwxrwxrwx 1 root root 7th May 16 18:16 /usr/bin/gcc -> gcc-7.3
發現gcc鏈接到gcc-7.0, 需要將它改為鏈接到gcc-4.8,方法如下:
sudo mv gcc gcc.bak #備份 sudo ln -s gcc-4.8 gcc #重新鏈接
同理,對g++也做同樣的修改:
ls -l g++* lrwxrwxrwx 1 root root 7th May 15:17 g++ -> g++-7.3
需要將g++鏈接改為g++-4.8:
sudo mv g++ g++.bak sudo ln -s g++-4.8 g++
再查看gcc和g++版本號:
gcc -v
g++ -v
均顯示gcc version 4.8 ,說明gcc 4.8安裝成功。
step. 2 安裝cuda ,及其補丁
輸入命令安裝Base Installer:
sudo sh cuda_9.1.85_387.26_linux.run
需要註意的是,之前已經安裝過顯卡驅動程序,故在提問是否安裝顯卡驅動時選擇no,其他 選擇默認路徑或者yes即可。
然後,繼續執行以下操作安裝3個 patch :
sudo sh cuda_9.1.85.1_linux.run sudo sh cuda_9.1.85.2_linux.run sudo sh cuda_9.1.85.3_linux.run
安裝完畢之後,將以下兩條加入.barshrc
文件中.
export PATH=/usr/local/cuda-9.1/bin${PATH:+:$PATH}} #註意,根據自己的版本,修改cuda-9.2/9.0... export LD_LIBRARY_PATH=/usr/local/cuda-9.1/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}} #註意,根據自己的版本,修改cuda-9.2/9.0...
OK ,那麽,到這一步,cuda 就安裝完成了
確認CUDA工作
找到samples
,一般在home
目錄下
cd ~/NVIDIA_CUDA-9.1_Samples/ make
等待編譯完成,
cd ./bin/x86_64/linux/release
使用deviceQuery
測試
$ ./deviceQuery ./deviceQuery Starting... CUDA Device Query (Runtime API) version (CUDART static linking) Detected 1 CUDA Capable device(s) Device 0: "GeForce GTX 960M" CUDA Driver Version / Runtime Version 9.1 / 9.1 CUDA Capability Major/Minor version number: 5.0 Total amount of global memory: 2004 MBytes (2101870592 bytes) ( 5) Multiprocessors, (128) CUDA Cores/MP: 640 CUDA Cores GPU Max Clock rate: 1176 MHz (1.18 GHz) Memory Clock rate: 2505 Mhz Memory Bus Width: 128-bit L2 Cache Size: 2097152 bytes Maximum Texture Dimension Size (x,y,z) 1D=(65536), 2D=(65536, 65536), 3D=(4096, 4096, 4096) Maximum Layered 1D Texture Size, (num) layers 1D=(16384), 2048 layers Maximum Layered 2D Texture Size, (num) layers 2D=(16384, 16384), 2048 layers Total amount of constant memory: 65536 bytes Total amount of shared memory per block: 49152 bytes Total number of registers available per block: 65536 Warp size: 32 Maximum number of threads per multiprocessor: 2048 Maximum number of threads per block: 1024 Max dimension size of a thread block (x,y,z): (1024, 1024, 64) Max dimension size of a grid size (x,y,z): (2147483647, 65535, 65535) Maximum memory pitch: 2147483647 bytes Texture alignment: 512 bytes Concurrent copy and kernel execution: Yes with 1 copy engine(s) Run time limit on kernels: Yes Integrated GPU sharing Host Memory: No Support host page-locked memory mapping: Yes Alignment requirement for Surfaces: Yes Device has ECC support: Disabled Device supports Unified Addressing (UVA): Yes Supports Cooperative Kernel Launch: No Supports MultiDevice Co-op Kernel Launch: No Device PCI Domain ID / Bus ID / location ID: 0 / 1 / 0 Compute Mode: < Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) > deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 9.1, CUDA Runtime Version = 9.1, NumDevs = 1 Result = PASS
3.安裝cuDNN(針對18.04)
cuDNN 的安裝,就是將 cuDNN 包內的文件,拷貝到cuda文件夾中即可。
step.1按照第四點分析的內容,我們需要下載的cuDNN 版本為
cuDNN v7.0.5 library for liunx,下載地址(需要註冊才能進行下載)
下載完畢後,切到默認的Downloads文件夾,可以看到 cudnn-9.1-linux-x64-v7.tgz 壓縮包
先解壓,然後將其中的內容復制到CUDA安裝文件夾裏面.
step.2 復制cuDNN內容到cuda相關文件夾內
sudo cp cuda/include/cudnn.h /usr/local/cuda/include #註意,解壓後的文件夾名稱為cuda ,將對應文件復制到 /usr/local中的cuda內 sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64 sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*
到此處,所以的安裝就完成。
接下來就可以安裝相應的軟件,如:anaconda,pycharm tensorflow 等。。。
Ubuntu16.04環境下的安裝:
安裝nvdia驅動和cuda:
主要參考了下面這個博客
https://blog.csdn.net/u010837794/article/details/63251725
下面是所有CUDA版本的網頁鏈接
https://developer.nvidia.com/cuda-toolkit-archive
然後cd指令進入/usr/local/cuda/samples,執行下面的命令來build samples
sudo make all -j64
全部編譯完成後,cd進
入/usr/local/cuda/samples/bin/x86_64/linux/release,運行deviceQuery
./deviceQuery
如果出現顯卡信息,則驅動及顯卡安裝成功,結果如下:
安裝CUDNN:
把cudnn壓縮包下載下來後,按照如下步驟安裝即可:
1、刪除原來的cudnn系統路徑下的一些文件
sudo rm -rf /usr/local/cuda/include/cudnn.h sudo rm -rf /usr/local/cuda/lib64/libcudnn* #這裏*是通配符,libcudnn*指的是名字中帶有libcudnn的所有文件
2、安裝剛才解壓的cudnn版本,在終端cd到剛解壓的cuda文件夾,然後繼續輸入下面兩個指令,這兩個指令相當於把解壓後的cuda文件夾下的一些文件拷到系統路徑下面
sudo cp include/cudnn.h /usr/local/cuda/include/ sudo cp lib64/lib* /usr/local/cuda/lib64/ #這裏*是通配符,lib*指的是名字中帶有lib的所有文件
3、在系統路徑下建立軟鏈接(解壓出來的lib64下面有3個so文件。分別是
libcudnn.so 和 libcudnn.so.5以及 libcudnn.so.5.1.3文件。 並且這3個點so文件大小都一樣。其實都是軟連接!libcudnn.so鏈接到libcudnn.so.5,而
libcudnn.so.5.又鏈接到libcudnn.so.5.1.3。 真正的文件只有
libcudnn.so.5.1.3)
cd /usr/local/cuda/lib64 sudo chmod +r libcudnn.so.5.1.10 sudo ln -sf libcudnn.so.5.1.10 libcudnn.so.5 sudo ln -sf libcudnn.so.5 libcudnn.so
接下來設置環境變量:
sudo gedit /etc/profile
在打開的文件中加入如下兩句話
export PATH=/usr/local/cuda/bin:$PATH export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
保存後,使環境變量立即生效,
source /etc/profile
ubuntu上安裝NVIDIA驅動、CUDA、CUDNN