1. 程式人生 > >ubuntu上安裝NVIDIA驅動、CUDA、CUDNN

ubuntu上安裝NVIDIA驅動、CUDA、CUDNN

req abi har linu 分別是 目錄 comm 能夠 csdn

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