继上篇博文写了Ubuntu16.04安装CUDA8.0+CUDNN7 :http://blog.csdn.net/lengconglin/article/details/77506386,此篇博文继续Caffe在GPU加速下的配置.
一. 首先参考本人写的 Ubuntu16.04 配置opencv3.1.0+python :http://blog.csdn.net/lengconglin/article/details/76863836
在安装好CUDA之后再来配置opencv3.1会遇到以下错误,这是这是因为opecv3.0与cuda8.0不兼容导致的。
modules/cudalegacy/src/graphcuts.cpp:120:54: error:
‘NppiGraphcutState’ has not been declared
typedef NppStatus (*init_func_t)(NppiSize oSize,
NppiGraphcutState** ppState, Npp8u* pDeviceMem);
解决办法:修改 ~/opencv-3.1.0/modules/cudalegacy/src/graphcuts.cpp文件内容,如图:
注释掉:#if !defined (HAVE_CUDA) || defined (CUDA_DISABLER)
修改为:#if !defined (HAVE_CUDA) || defined (CUDA_DISABLER) || (CUDART_VERSION >= 8000)
二. 接下来参考 Ubuntu16.04配置cpu版本Caffe :http://blog.csdn.net/lengconglin/article/details/76714338 安装相关的依赖.
三. 配置Caffe
1.从github上获取caffe
git clone https://github.com/BVLC/caffe.git
2.cp Makefile.config.example Makefile.config
3.打开并修改配置文件:
sudo gedit Makefile.config #打开Makefile.config文件
根据个人情况修改文件:
a.若使用cudnn,则:
将
#USE_CUDNN := 1
修改成:
USE_CUDNN := 1
b.若使用的opencv版本是3的,则
将
#OPENCV_VERSION := 3
修改为:
OPENCV_VERSION := 3
c.若要使用python来编写layer,则
将
#WITH_PYTHON_LAYER := 1
修改为
WITH_PYTHON_LAYER := 1
d.非常重要的一项,将# 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/lib/x86_64-linux-gnu/hdf5/serial/include
LIBRARY_DIRS:=$(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu/hdf5/serial
这是因为ubuntu16.04的文件包含位置发生了变化,尤其是需要用到的hdf5的位置,需要更改这一路径.
4.打开并修改配置文件,打开makefile文件,做如下修改:
sudo gedit makefile
将:
NVCCFLAGS +=-ccbin=$(CXX) -Xcompiler-fPIC $(COMMON_FLAGS)
替换为:
NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)
本人在接下来的变异pycaffe时候遇到报错:/home/forest/caffe/include/caffe/util/cudnn.hpp文件中switch分支有未处理的case,加上 default: break;再重新编译就好了.
5.编译测试
make all -j8
make pycaffe -j8
make test -j8
make runtest -j8
最终没有错误得到如下结果:
最后一步不要忘了设置 Python Caffe ,去到CAFFE文件夹里面的python文件夹, 把当前路径记录下来(pwd). 然后输入以下命令(把记下的路径放在相应地方):
export PYTHONPATH=~/caffe/python:$PYTHONPATH