天天看点

服务器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