服务器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环境配置_第1张图片

安装完成后,通过nvidia-smi命令查询是否安装成功:

服务器caffe环境配置_第2张图片

然后配置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环境配置_第3张图片

下载页面中的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


你可能感兴趣的:(Environment,Configuration)