一、硬件與環境
顯卡:GTX 1080
系統:Ubuntu 14.04
CUDA:cuda_8.0.44_linux.run
cuDNN:cudnn-8.0-linux-x64-v5.1.tgz
注意:
- GTX1080顯卡必須用CUDA 8.0版本。CUDA從此處下載。切記,千萬不要下載 deb 包,否則后方無數坑在等著你。
CUDA下載界面 - 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
,如果沒有內容,則禁用成功。
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
可查看顯卡驅動和其他信息。
注意:網上其他教程由于年代久遠,里面不建議安裝此 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
一行開頭的#刪除,保存。
打開終端,輸入
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模式的強大吧!
折騰了近三天,查了無數資料踩了無數坑。若本文對你有幫助,請務必點個喜歡!
參考資料: