1. 程式人生 > >ubuntu下安裝cuda+cudnn步驟

ubuntu下安裝cuda+cudnn步驟

今天自己在電腦上安裝了cuda ,對於小白,一天真的時很漫長,簡單記錄一下,日後方便自己再次安裝。自己是根據官網上的安裝檔案進行操作的。http://developer.nvidia.com/cuda-downloads。

給出官網上的型號適用圖:


安裝步驟如下:

1、前期準備

(1)確定有cuda使用的GPU ,可使用下面命令檢視:

$ lspci | grep -i nvidia

如果沒有看到任何設定,則使用命令   update-pciids    來升級PCI 硬體資料庫,然後重新執行上面 lspci 命令。

本人電腦上出現了GPU 版本,如下所示:


(2)檢視系統版本

$ uname -m && cat /etc/*release

你可以看到類似如下資訊:
x86_64
Red Hat Enterprise Linux Workstation release 6.0 (Santiago)

從x86_64可以看出使用的是64位。

本人電腦顯示結果如下圖所示:


(3)驗證gcc

使用命令驗證gcc版本:

$ gcc --version

從文章開頭可以知道ubuntu16.04系統需要5.3.1以上的gcc。如果電腦上沒有gcc則需要進行安裝,之後需要對cuda程式碼使用gcc進行除錯。安裝程式碼如下:
sudo apt-get  install  build-essential 

(4)驗證系統是否有正確的核心頭和安裝包

使用如下命令可以檢視核心的版本號:

uname -r

對於ubuntu系統,可以使用如下命令進行核心頭與開發包的安裝:
$ sudo apt-get install linux-headers-$(uname -r)


(5)選擇安裝方法

一種時獨立的,一種是分散式的。這裡我沒有進行太多研究,因為我還都不懂,所以就沒有過多考慮。

以上為前期準備工作。

2、安裝

我使用的時deb檔案。所以接下來介紹的是deb檔案的安裝方法,大家也可以下載sh檔案。

先從網站上下載了cuda的deb檔案。

(1)執行deb檔案

$ sudo dpkg -i cuda-repo-<distro>_<version>_<architecture>.deb

(2)升級
$ sudo apt-get update

(3)安裝CUDA
$ sudo apt-get install cuda

3、安裝後的操作

(1)修改環境變數

使用命令開啟bashrc檔案:

gedit ~/.bashrc

在bashrc檔案最後面新增上下面的cuda路徑:
$ export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}}

其次,在bashrc檔案最後面還需要加上依賴庫地址。

64位的使用者新增如下的依賴庫地址:

$ export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

32位的使用者新增如下的依賴庫地址:

$ export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

注:地址最好寫成一行,否則在開啟終端時會提示路徑錯誤。

結果如下圖所示:


若寫成下圖所示格式,開啟終端時會提示路徑錯誤


(2)驗證

a、為了修改、編譯和執行示例,必須安裝具有寫入許可權的示例。提供方便安裝指令碼:

$ cuda-install-samples-8.0.sh <dir>

其中dir為目標地址。

完成這些後要對電腦重新啟動,才能進行下面操作。

b、驗證驅動程式版本

$ cat /proc/driver/nvidia/version

再依次執行下面操作:

驗證cuda版本:

nvcc -V

結果如下圖:


nvidia-smi


c、執行例子

進入例程所在目錄:

cd /usr/local/cuda/samples/7_CUDALibraries/batchCUBLAS/

檢視當前目錄:

ls

含有五個檔案:

batchCUBLAS.cpp     batchCUBLAS.h      Makefile     NSIGHTEclipse.xml     readme.txt

直接使用make進行編譯 

make

會顯示如下資訊:
/usr/local/cuda-8.0/bin/nvcc   -ccbin  g++  -I../../common/inc   -m64   -gencode arch=compute_52,code=sm_52  -gencode arch=compute_52,code=compute_52  -o  batchCUBLAS.o  -c  batchXUBLAS.cpp
/usr/local/cuda-8.0/bin/nvcc   -ccbin  g++    -m64   -gencode arch=compute_52,code=sm_52  -gencode arch=compute_52,code=compute_52  -o  batchCUBLAS.o  -lcublas

再次檢視資料夾下的檔案
ls


資料夾下包括:

batchCUBLAS    batchCUBLAS.o   batchCUBLAS.cpp     batchCUBLAS.h      Makefile     NSIGHTEclipse.xml     readme.txt

比之前多了2個檔案。編譯的結果放在了   /usr/local/cuda/samples/bin/x86_64/linux/release   中。


此時可以在/usr/local/cuda/samples/bin/x86_64/linux/release  目錄下執行:

./deviceQuery

會出現如下結果:


/usr/local/cuda/samples/7_CUDALibraries/batchCUBLAS/      下的batchCUBLAS實現矩陣乘運算,可以在該目錄下執行如下程式碼:

$ ./batchCUBLAS -m4096 -n4096 -k4096


安裝CUDNN 

安裝cudnn比安裝cudn相對來說簡單的多得多,所以就不單獨拿出一篇文章來介紹了。很簡單。

CuDNN是專門針對Deep Learning框架設計的一套GPU計算加速方案,目前支援的DL庫包括Caffe,ConvNet, Torch7等。

CuDNN可以在官網免費獲得,註冊帳號後即可下載。官網沒有找到安裝說明,下載得到的壓縮包內也沒有Readme. 不過google一下就會找到許多說明。基本原理是把lib檔案加入到系統能找到的lib資料夾裡, 把標頭檔案加到系統能找到的include資料夾裡就可以。

參考:http://www.cnblogs.com/platero/p/4118139.html

1、下載

在網站  https://developer.nvidia.com/cudnn   下載·「  cuDNN  v**  library for Linux    」


2、執行如下命令

tar -xzvf cudnn-8.0-linux-x64-v5.1.tgz

cd cudnn-8.0-linux-x64-v5.1   進入解壓縮的檔案內,名稱會有所不同,所以解壓的時候要注意。有時可能也會是cuda

複製相關資訊

sudo cp lib* /usr/local/cuda/lib64/
sudo cp cudnn.h /usr/local/cuda/include/

cudnn.h有時可能在include 資料夾內,需要進入include 資料夾內對 cudnn.h 進行復制。

3、 修改 caffe 的·配置檔案
進入caffe目錄下,開啟Makefile.config檔案,將Use_cudnn解註釋。

cd caffe
gedit Makefile.config

修改配置檔案:


4、驗證

對caffe進行重新編譯,如果成功載入cudnn的lib庫,則編譯成功,否則新增失敗。

驗證後出現錯誤:

/usr/bin/ld: 找不到 -lcudnn



我解決的方法是將壓縮出來的檔案單個複製到指定的資料夾下:

sudo cp libcudnn.so /usr/local/cuda/lib64/
sudo cp libcudnn.so.5 /usr/local/cuda/lib64/
sudo cp libcudnn.so.5.1.10 /usr/local/cuda/lib64/
sudo cp libcudnn_static.a /usr/local/cuda/lib64/


之後再編譯caffe,