天天看點

伺服器caffe環境配置

配置目标:cuda8.0 + cudnn + opncv3.1 + matlab-R2014a + mkl

伺服器配置:

顯示卡:k80

系統:ubuntu14.04(64位)

安裝步驟:

1. 安裝gcc: 

$ apt-get install gcc  $ apt-get install build-essential

2. 安裝顯示卡驅動: $ sudo ./NVIDIA-Linux-x86_64-375.20.run

3. 安裝 cuda: 在官網上下載下傳cuda8.0版本 由于步驟2已經安裝了顯示卡驅動,是以在安裝cuda的時候不需要再安裝NIVIDIA Accelerate Graphics Driver:

伺服器caffe環境配置
伺服器caffe環境配置

安裝完成後,通過nvidia-smi指令查詢是否安裝成功:

伺服器caffe環境配置
伺服器caffe環境配置

然後配置cuda環境:

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

在建立檔案中輸入: /usr/local/cuda/lib64 /lib

儲存,并執行指令:sudo ldconfig  -v

4. 配置cudnn

$ tar zxvf cudnn-8.0-linux-x64-v5.1.tgz
$ cd cuda
$ sudo cp include/cudnn.h /usr/local/include
$ sudo cp lib64/libcudnn.* /usr/local/lib
$ sudo ln -sf /usr/local/lib/libcudnn.so.5.1.3 /usr/local/lib/libcudnn.so.5
$ sudo ln -sf /usr/local/lib/libcudnn.so.5 /usr/local/lib/libcudnn.so
$ sudo ldconfig -v
           

5.  安裝opencv 1) 從官網中(http://opencv.org/downloads.html)下載下傳opencv-3.1.0

2) 安裝必備基本庫:

$ sudo apt-get install build-essential cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev  # 必要的基本庫

3) $ unzip opencv.zip

4) $ cd opencv-3.1.0

5) $ vim models/cudalegacy/src/graphcuts.cpp  (解決opencv v3,跟cuda8的相容性問題)

更改:

#include "precomp.hpp"
// GraphCut has been removed in NPP 8.0
#if !defined (HAVE_CUDA) || defined (CUDA_DISABLER) || (CUDART_VERSION >= 8000)
void cv::cuda::graphcut(GpuMat&, GpuMat&, GpuMat&, GpuMat&, GpuMat&, GpuMat&, GpuMat&, Stream&) { throw_no_cuda(); }
void cv::cuda::graphcut(GpuMat&, GpuMat&, GpuMat&, GpuMat&, GpuMat&, GpuMat&, GpuMat&, GpuMat&, GpuMat&, GpuMat&, GpuMat&, Stream&) { throw_no_cuda(); }
           

6) $ mkdir build

7) $cd build

8) $ cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..

在configure過程中過程中,可能會出現下面的錯誤:

-- ICV: Downloading ippicv_linux_20151201.tgz...

在直接下載下傳該檔案的過程中,會因為逾時而失敗,多運作幾次就好了

9)   $ make -j16  (16核并行編譯)

10) $ sudo make install

6. 安裝mkl

1) 在官網中注冊下載下傳

伺服器caffe環境配置
伺服器caffe環境配置
伺服器caffe環境配置

下載下傳頁面中的serial  number在安裝過程中需要。

2) 安裝

$ tar zxvf parallel_studio_xe_2017.update1.tar.gz
$ cd parallel_studio_xe_2017
$ sudo sh ./install.sh
           

3) 環境設定:

$ sudo gedit /etc/ld.so.conf.d/intel_mkl.conf
/opt/intel/lib/intel64
/opt/intel/mkl/lib/intel64
$ sudo ldconfig -v
           

7.安裝matlab 1) 複制,覆寫源檔案: $ sudo cp Crack/install.jar java/jar 如果報錯:

Error: Installation cannot proceed. You may either: 

1. Set an X11 display, and restart the install process 

2. Use the silent install feature by specifying the -mode silent option

解決思路: $ sudo ./install -mode silent -agreeToLicense yes -fileInstallationKey 1111-1111-1111-1111

2)激活:

$ sudo  /usr/local/MATLAB/R2014A/bin/activate_matlab.sh -propertiesFile  /usr/local/MATLAB/R2014A/etc/activate.ini
其中activate.ini的内容:
isSilent=true #開啟silent模式
activateCommand=activateOffline #設定激活方式, 離線激活 無需聯網
licenseFile= /usr/local/MATLAB/R2014A/etc/license_405329_R2014a.lic #license檔案位置
其中*.lic從crack裡面cp到/usr/local目錄下即可
           

3) Crack/Linux下的libmwservices.so 複制到 /usr/local/MATLAB/R2014A/bin/glnxa64

注:編譯的時候如果出現錯誤,将gcc,g++版本降低

$ sudo apt-get install gcc-4.7 g++4.7
$ sudo rm gcc
$ sudo ln -sf gcc-4.7 gcc
           

8. 安Anaconda

下載下傳[Anaconda]

$bash Anaconda2*.sh

$source ~/.bashrc

9. 安裝caffe

1)安裝依賴包

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

2)下載下傳caffe

$ git clone --recursive https://github.com/BVLC/caffe.git

3)配置Makefile.config檔案:

修改部分:

USE_CUDNN := 1 #啟用cudnn
...
OPENCV_VERSION := 3 #啟用opencv
...
CUDA_DIR := /usr/local/cuda
...
BLAS := mkl #啟用mkl
...
MATLAB_DIR := /usr/local/MATLAB/R2014a#實作caffe對matlab接口的支援
...
           

ANACONDA_HOME := $(HOME)/anaconda2

PYTHON_INCLUDE := $(ANACONDA_HOME)/include \            $(ANACONDA_HOME)/include/python2.7 \            $(ANACONDA_HOME)/lib/python2.7/site-packages/numpy/core/includePYTHON_LIB := $(ANACONDA_HOME)/lib

...

4.編譯:

$ makeall-j32
$ make test-j32
$ make runtest-j32
$ make pycaffe-j32
$ make matcaffe-j32

           

[注]

1) 在運作相關程式是如果報錯:ImportError: No module named google.protobuf.internal, 解決方法:pip install protobuf==2.6.0

2)報錯:Check failed: registry.count(type) == 1 (0 vs. 1) Unknown layer type: Python, 解決方法,在Makefile.config檔案裡面添加WITH_PYTHON_LAYER :=1,

然後重新編譯

參考文獻

[1]http://blog.csdn.net/shiorioxy/article/details/52652831

[2]http://blog.csdn.net/hjimce/article/details/48781693