Ubuntu16.04+CUDA9.0+cuDNN7+python2.7+Tensorflow12+opencv3.4.0+Matlab2015b+Caffe(GPU)
所用安裝包連結等稽核通過了我貼上,收了一個金幣,包含cuda9.0+cuDNN7.4.1+Matlab2015b+opencv3.4.0+caffe原始碼
1 禁用nouveau
重啟系統,在選擇系統的介面安鍵盤“e”,將倒數第二行的quiet splash -- 改為 quiet splash acpi=off
進入Ubuntu系統後輸入lsmod | grep nouveau ,沒有任何輸出就是禁用成功。
2 安裝NVIDIA顯示卡驅動
解除安裝老版本
sudo apt-get remove --purge nvidia*
檢視推薦版本
ubuntu-drivers devices
從官網下載推薦的版本之一
#我是從官網下載的390的。
sudo dpkg -i NVIDIA-Linux-x86_64-390.87.run
#將下載好的run檔案拷貝至home目錄下
在ubuntu下按ctrl+alt+f1進入命令列介面,登入帳號和密碼後。然後在命令列介面下輸入:
$ sudo service lightdm stop //這個是關閉圖形介面,不執行會出錯 $ sudo chmod a+x NVIDIA-Linux-x86_64-390.87.run //賦予執行許可權 $ sudo ./NVIDIA-Linux-x86_64-390.87.run -no-x-check -no-opengl-files //只有禁用opengl這樣安裝才不會出現迴圈登陸的問題 //-no-x-check:安裝驅動時關閉X服務 //-no-nouveau-check:安裝驅動時禁用nouveau.我們前邊已經禁用了這一步可以省略 //-no-opengl-files:只安裝驅動檔案,不安裝OpenGL檔案
檢視驅動是否安裝成功
#檢視驅動是否安裝成功.如果沒有顯示,重啟後再輸入檢視
$ nvidia-smi
#重啟指令
$ reboot
3 安裝CUDA9.0及補丁
去官網下載相應的cuda9.0版本及補丁
$ sudo sh cuda_9.0.176_384.81_linux.run #注意:不要安裝這裡推薦的驅動。因為上邊安裝過了。然後根據提示填寫cuda的路徑和samples的路徑。 #配置環境變數 sudo emacs /etc/profile #開啟檔案後在檔案末尾新增路徑,也就是安裝目錄,命令如下: export PATH=/usr/local/cuda-9.0/bin:$PATH export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64$LD_LIBRARY_PATH #儲存,然後重啟電腦 $ sudo reboot #安裝補丁,和上邊的步驟一樣.這裡不用配置環境變量了 $ sudo sh cuda_9.0.176.1_linux.run $ sudo sh cuda_9.0.176.2_linux.run $ sudo sh cuda_9.0.176.3_linux.run $ sudo sh cuda_9.0.176.4_linux.run
4 安裝cuDNN
下載cuDNN, 進入cuDNN官網註冊下載,我下載的是7.4.1 for cuda9.0的,等會貼連線。
cuDNN的官方安裝方式網址, 網址裡講的很詳細。不過也可以看我的:
首先解壓安裝包,然後將所需檔案copy至CUDA,並改變檔案訪問許可權:
$ tar -xzvf cudnn-9.0-linux-x64-v7.4.1.5.tgz
$ sudo cp cuda/include/cudnn.h /usr/local/cuda/include
$ sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
$ sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*
到這裡cuDNN就安裝完成了。
檢視CUDA和CUDNN是否安裝成功及相應的版本號:
cat /usr/local/cuda/version.txt
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
nvcc -V
5 安裝python2.7
Ubuntu16.04自帶python2.7但是庫較為簡單,具體的安裝了配置見我的部落格 ,
那裡有很詳細完善的步驟。python2.7配置caffe的Makefile.config檔案時更簡單,更容易通過。
6 安裝Tensorflow
我的python2.7主要用來配置caffe使用。Tensorflow是在python3.6下執行的,所以通過pip3直接安裝
#用於python3
pip3 install tensorflow-gpu
#用於python2.7
pip install tensorflow-gpu
7安裝Opencv-3.4.0 和Matlab2015b
詳細的過程見我的部落格 。
8 安裝Caffe
下載原始碼
git clone https://github.com/BVLC/caffe
安裝
#安裝依賴
$ sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev
$ libhdf5-serial-dev protobuf-compiler
$ sudo apt-get install --no-install-recommends libboost-all-dev
$ sudo apt-get install protobuf-c-compiler protobuf-compiler
$ sudo apt-get install libgoogle-glog-dev
$ cd caffe
$ cp Makefile.config.example Makefile.config
更改Makefile.config
#這是我的修改的地方
USE_CUDNN := 1
OPENCV_VERSION := 3
CUDA_DIR := /usr/local/cuda
CUDA_ARCH :=
#-gencode arch=compute_20,code=sm_20 \
# -gencode arch=compute_20,code=sm_21 \
-gencode arch=compute_30,code=sm_30 \
-gencode arch=compute_35,code=sm_35 \
-gencode arch=compute_50,code=sm_50 \
-gencode arch=compute_52,code=sm_52 \
-gencode arch=compute_60,code=sm_60 \
-gencode arch=compute_61,code=sm_61 \
-gencode arch=compute_61,code=compute_61
BLAS := atlas
MATLAB_DIR := /usr/local/MATLAB/R2015b
PYTHON_INCLUDE := /usr/include/python2.7 \
/usr/lib/python2.7/dist-packages/numpy/core/include
PYTHON_LIB := /usr/lib
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/hdf5/serial
更改Makefile
LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_serial_hl hdf5_serial
更改GCC版本許可權
sudo eamcs /usr/local/cuda/include/crt/host_config.h
#error-- unsupported GNU version! gcc versionslater than 6 are not supported!
使用雙斜槓註釋掉,改為:
//#error-- unsupported GNU version! gcc versionslater than 6 are not supported!
編譯
#編譯 測試
sudo make all -j16
sudo test -j16
sudo runtest -j16
如果再編譯的過程中,遇到問題,建議檢視這篇部落格