安裝配置 Ubuntu 14.04 + CUDA8.0 + cuDNN v5 + caffe

weixin_33978044發表於2016-11-25

一、硬體與環境

顯示卡:GTX 1080
系統:Ubuntu 14.04
CUDA:cuda_8.0.44_linux.run
cuDNN:cudnn-8.0-linux-x64-v5.1.tgz

注意:

  1. GTX1080顯示卡必須用CUDA 8.0版本。CUDA從此處下載。切記,千萬不要下載 deb 包,否則後方無數坑在等著你。
    1649584-2e356095ccdd16bb.png
    CUDA下載介面
  2. GTX1080顯示卡必須用cuDNN-8.0-V5.1版本,不然用 caffe 跑模型,用 CPU或GPU顯示卡跑精度正常,一旦開啟cuDNN模式,精度(acc)立刻下降到 0.1 左右,loss 非常大。cuDNN在此處下載。下載需註冊。最好註冊一個賬號,選擇對應的版本,不要用網上其他教程給的現成的包,出問題的概率非常大。

二、安裝:

注意:一定要按順序!
注意:一定要按順序!
注意:一定要按順序!

1. 安裝 Ubuntu 14.04

本文不關注。假設你已經將此係統做過穩定的開發環境,這不是全新安裝後的系統,至少 git 等最常用包已經安裝。缺什麼裝什麼,apt-get 大法好。

2. 禁用 nouveau 驅動

開啟終端,輸入$ sudo gedit /etc/modprobe.d/blacklist-nouveau.conf,輸入

blacklist nouveau
options nouveau modset=0

儲存退出,執行$ sudo update-initramfs -u,禁用結束。重啟電腦。

驗證驅動是否禁用成功:

輸入$ sudo lspci | grep nouveau,如果沒有內容,則禁用成功。

1649584-5877c6d45d0b5967.png
什麼都沒有,則禁用成功

3. 安裝CUDA 8.0

執行下載好的 run file (假設 cuda_8.0.44_linux.run 在家目錄下)。
$ sudo sh cuda_8.0.44_linux.run
一路回車即可。
驗證是否安裝成功:
輸入$ ls /dev/nvidia*,若生成 4 個左右 Nvidia 開頭的檔案(夾),說明此步安裝成功。此時已經安裝好顯示卡驅動和CUDA 8.0。輸入$ nvidia-smi可檢視顯示卡驅動和其他資訊。

1649584-5a6ec9ae8f5a599b.png
生成了五個 nvidia 開頭的資料夾
1649584-d0ffb2539fdf1835.png
顯示卡驅動版本資訊

注意:網上其他教程由於年代久遠,裡面不建議安裝此 CUDA 包中的顯示卡驅動。然而,這個包中的顯示卡驅動大版本為 367 ,非常新,可以用。

4. 配置環境變數

輸入$ sudo gedit /etc/profile,開啟 gedit ,最後兩行輸入

export PATH=/usr/local/cuda-8.0/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:$LD_LIBRARY_PATH

儲存退出,環境變數配置完成。

5. 安裝 cuDNN

你已經下載好 cudnn-8.0-linux-x64-v5.1.tgz,並將其放在家目錄($ cd ~)下。
按順序輸入以下程式碼:

$ cd ~
$ sudo tar xvf cudnn-8.0-linux-x64-v5.1.tgz
$ cd cuda/include
$ sudo cp *.h /usr/local/include/
$ cd ../lib64
$ sudo cp lib* /usr/local/lib/
$ cd /usr/local/lib# sudo chmod +r libcudnn.so.5.1.5
$ sudo ln -sf libcudnn.so.5.1.5 libcudnn.so.5
$ sudo ln -sf libcudnn.so.5 libcudnn.so
$ sudo ldconfig

注意:libcudnn.so後面跟的數字可能和你下載的 cudnn 包小版本的不同而不同,去~/cuda/lib64下看一眼,相對應地進行修改。

6. 安裝 caffe

(1) 下載 caffe

在家目錄執行 $ git clone https://github.com/BVLC/caffe.git~下生成資料夾 caffe。

(2) 安裝依賴

$ sudo apt-get install libatlas-base-dev libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-dev libgflags-dev libgoogle-glog-dev liblmdb-dev protobuf-compiler

(3) 編譯 caffe

開啟 caffe 所在目錄,找到Makefile.config.example檔案,將其改名為Makefile.config,開啟。將# USE_CUDNN := 1一行開頭的#刪除,儲存。

1649584-5496cfc7fa13ce3f.png
在 MakeFile.config 中開啟 cuDNN模式

開啟終端,輸入

cd ~/caffe
make -j

等待編譯完成即可。
注意:編譯需要非常大的記憶體和非常長的時間。一般情況下不會報錯。報錯查閱相關書籍和搜尋引擎,此處不關注。

(4) 配置 caffe 環境

caffe 執行時需要呼叫 cuda 的庫,我們在/etc/ld.so.conf.d目錄下新建一個cafe.conf檔案。終端輸入
$ sudo gedit /etc/ld.so.conf.d/caffe.conf
開啟 gedit 。新增內容:
/usr/local/cuda/lib64
儲存退出。
更新配置
$ sudo ldconfig

所有配置結束。

三、測試

此處說的很簡略。假設你已經初步掌握 caffe 的用法。

# cd ~/caffe
# sudo sh data/mnist/get_mnist.sh
# sudo sh examples/mnist/create_mnist.sh
# sudo sh examples/mnist/train_lenet.sh

感受1080開啟cuDNN模式的強大吧!

1649584-65c86a3783cf99a3.png
caffe 例程結果

折騰了近三天,查了無數資料踩了無數坑。若本文對你有幫助,請務必點個喜歡!

參考資料:

  1. Caffe學習系列(1):安裝配置ubuntu14.04+cuda7.5+caffe+cudnn
  2. Loss issue with GTX 1080, Ubuntu 14.04 and CUDA 8.0

相關文章