1. 程式人生 > >Ubuntu16.04+cuda8.0+caffe安裝教程

Ubuntu16.04+cuda8.0+caffe安裝教程

1、安裝nvidia驅動

執行如下語句,安裝

sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update
sudo apt-get install nvidia-367
sudo apt-get install mesa-common-dev
sudo apt-get install freeglut3-dev

執行完上述後,重啟(reboot)。
重啟後輸入:

nvidia-smi

如果出現了你的GPU列表,則說明驅動安裝成功了。另外也可以通過

nvidia-settings

檢視自己機器上詳細的GPU資訊,本人機器的資訊如下:
這裡寫圖片描述

2、安裝CUDA

sudo sh cuda_8.0.27_linux.run

執行後會有一系列提示讓你確認,但是注意,有個讓你選擇是否安裝nvidia361驅動時,一定要選擇否,因為前面我們已經安裝了更加新的nvidia367,所以這裡不要選擇安裝。其餘的都直接預設或者選擇是即可。
安裝成功後會出現如下介面:

===========
= Summary =
===========
Driver: Not Selected
Toolkit: Installed in /usr/local/cuda-8.0
Samples: Installed in /home/textminer
Please make sure that
– PATH includes /usr/local/cuda-8.0
/bin – LD_LIBRARY_PATH includes /usr/local/cuda-8.0/lib64, or, add /usr/local/cuda-8.0/lib64 to /etc/ld.so.conf and run ldconfig as root To uninstall the CUDA Toolkit, run the uninstall script in /usr/local/cuda-8.0/bin Please see CUDA_Installation_Guide_Linux.pdf in /usr/local/cuda-8.0/doc/pdf for detailed information on setting up CUDA. ***WARNING: Incomplete installation! This installation did not
install the CUDA Driver. A driver of version at least 361.00 is required for CUDA 8.0 functionality to work. To install the driver using this installer, run the following command, replacing with the name of this run file: sudo .run -silent -driver Logfile is /opt/temp//cuda_install_6583.log

安裝完畢後,再宣告一下環境變數,並將其寫入到 ~/.bashrc 的尾部:

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

然後設定環境變數和動態連結庫,在命令列輸入:

$ sudo gedit /etc/profile

在開啟的檔案末尾加入:

export PATH=/usr/local/cuda/bin:$PATH

儲存之後,建立連結檔案:

sudo gedit /etc/ld.so.conf.d/cuda.conf

在開啟的檔案中新增如下語句:

/usr/local/cuda/lib64

然後執行

sudo ldconfig

使連結立即生效。

3、測試cuda的Samples

cd /usr/local/cuda-7.5/samples/1_Utilities/deviceQuery
make
sudo ./deviceQuery

如果顯示的是一些關於GPU的資訊,則說明安裝成功了。

4、使用cudnn

首先去官網下載你需要的cudnn,下載的時候需要註冊賬號。選擇對應你cuda版本的cudnn下載。這裡我下載的是cudnn5.1,是個壓縮檔案(.tgz)
這裡寫圖片描述
下載完cudnn5.0之後進行解壓,cd進入cudnn5.1解壓之後的include目錄,在命令列進行如下操作:

sudo cp cudnn.h /usr/local/cuda/include/    #複製標頭檔案

再將cd進入lib64目錄下的動態檔案進行復制和連結:

sudo cp lib* /usr/local/cuda/lib64/    #複製動態連結庫
cd /usr/local/cuda/lib64/
sudo rm -rf libcudnn.so libcudnn.so.5    #刪除原有動態檔案
sudo ln -s libcudnn.so.5.0.5 libcudnn.so.5  #生成軟銜接
sudo ln -s libcudnn.so.5 libcudnn.so      #生成軟連結

5、matlab的安裝與配置

在網盤上下載安裝包http://pan.baidu.com/s/1nuKJc9N。裡面有一個crack資料夾,用於破解;MATHWORKS_R2014A.iso用於安裝。

1、掛載iso(需新建matlab_iso資料夾):
   sudo mount -o loop MATHWORKS_R2014A.iso ~/matlab_is
2、開始安裝:
   cd ~/matlab_iso
   sudo ./install
3、選擇不聯網安裝
4、金鑰隨便輸入,比如 12345-67890-12345-67890
5、啟用:選擇”license_405329_R2014a.lic”檔案進行啟用(在Crack資料夾下面)
6、將libmwservices.so複製到/usr/local/MATLAB/R2014a/bin/glnxa64中:
   sudo cp libmwservices.so /usr/local/MATLAB/R2014a/bin/glnxa64/libmwservices.so

6、安裝opencv3.1.0

從官網上下載opencv3.1.0
http://opencv.org/downloads.html
並將其解壓到你要安裝的位置,假設解壓到了/home
首先安裝Ubuntu系統需要的依賴項,雖然我也不知道有些依賴項是幹啥的,但是隻管裝就行,也不會佔據很多空間的。

sudo apt-get install --assume-yes libopencv-dev build-essential cmake git libgtk2.0-dev pkg-config python-dev python-numpy libdc1394-22 libdc1394-22-dev libjpeg-dev libpng12-dev libtiff5-dev libjasper-dev libavcodec-dev libavformat-dev libswscale-dev libxine2-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libv4l-dev libtbb-dev libqt4-dev libfaac-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev x264 v4l-utils unzip

然後安裝opencv需要的一些依賴項,一些檔案編碼解碼之類的東東。

sudo apt-get install build-essential cmake git

sudo apt-get install ffmpeg libopencv-dev libgtk-3-dev python-numpy python3-numpy libdc1394-22 libdc1394-22-dev libjpeg-dev libpng12-dev libtiff5-dev libjasper-dev libavcodec-dev libavformat-dev libswscale-dev libxine2-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libv4l-dev libtbb-dev qtbase5-dev libfaac-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev x264 v4l-utils unzip

在終端中cd到opencv資料夾下,然後

mkdir build   #新建一個build資料夾,編譯的工程都在這個資料夾裡
cd build/    
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D WITH_V4L=ON -D WITH_QT=ON -D WITH_OPENGL=ON -DCUDA_NVCC_FLAGS="-D_FORCE_INLINES" ..

cmake成功後,會出現如下結果,提示配置和生成成功:

-- Configuring done
-- Generating done
-- Build files have been written to: /home/ise/software/opencv-3.1.0/build

然後make編譯就可以了

make -j8

上面是將opencv編譯成功,但是並沒有安裝到我們的系統中,有很多的設定都沒有寫入到系統中,因此還要進行install。

sudo make install
sudo /bin/bash -c 'echo "/usr/local/lib" > /etc/ld.so.conf.d/opencv.conf'
sudo ldconfig

重啟系統,重啟系統後cd到build資料夾下:

sudo apt-get install checkinstall
sudo checkinstall

然後按照提示安裝就可以了。
使用checkinstall的目的是為了更好的管理我安裝的opencv,因為opencv的安裝很麻煩,解除安裝更麻煩,其安裝的時候修改了一大堆的檔案,當我想使用別的版本的opencv時,將當前版本的opencv解除安裝就是一件頭疼的事情,因此需要使用checkinstall來管理我的安裝。
執行了checkinstall後,會在build檔案下生成一個以backup開頭的.tgz的備份檔案和一個以build開頭的.deb安裝檔案,當你想解除安裝當前的opencv時,直接執行dpkg -r build即可。

7、安裝caffe

首先安裝各種依賴包

sudo apt-get update 
sudo apt-get install -y build-essential cmake git pkg-config 
 sudo apt-get install -y libprotobuf-dev libleveldb-dev libsnappy-dev libhdf5-serial-dev protobuf-compiler 
 sudo apt-get install -y libatlas-base-dev 
 sudo apt-get install -y--no-install-recommends libboost-all-dev 
 sudo apt-get install -y libgflags-dev libgoogle-glog-dev liblmdb-dev 
 sudo apt-get install -y python-pip 
 sudo apt-get install -y python-dev 
 sudo apt-get install -y python-numpy python-scipy  

將終端cd到你要安裝caffe的位置,執行如下指令,從github上clone caffe。

git clone https://github.com/BVLC/caffe.git  //從github上git caffe
cd caffe //開啟到剛剛git下來的caffe 
sudo cp Makefile.config.example Makefile.config   //將Makefile.config.example的內容複製到Makefile.config 
//因為make指令只能make Makefile.config檔案,而Makefile.config.example是caffe給出的makefile例子 
sudo gedit Makefile.config //開啟Makefile.config檔案
開啟之後修改如下內容:
//若使用cudnn,則將# USE_CUDNN := 1 修改成: USE_CUDNN := 1 
//若使用的opencv版本是3的,則將# OPENCV_VERSION := 3 修改為: OPENCV_VERSION := 3 
//若要使用python來編寫layer,則需要將# WITH_PYTHON_LAYER := 1 修改為 WITH_PYTHON_LAYER := 1 
//重要的一項 將# Whatever else you find you need goes here.下面的 INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/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 //這是因為ubuntu16.04的檔案包含位置發生了變化,尤其是需要用到的hdf5的位置,所以需要更改這一路徑

//若使用MATLAB介面的話,則要講MATLAB_DIR換成你自己的MATLAB安裝路徑
MATLAB_DIR := /usr/local
MATLAB_DIR := /usr/local/matlab2014a

開啟makefile檔案,

將
NVCCFLAGS +=-ccbin=$(CXX) -Xcompiler-fPIC $(COMMON_FLAGS)
替換
NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)

編輯/usr/local/cuda/include/host_config.h,將其中的第115行註釋掉:

#error-- unsupported GNU version! gcc versions later than 4.9 are not supported!

改為
//#error-- unsupported GNU version! gcc versions later than 4.9 are not supported!

之後再

make all -j8
make runtest
make pycaffe
make matcaffe