ubuntu16.04 cuda8.0 cudnn6.0 opencv3.2编译安装caffe

1,安装NVIDIA 显卡

根据自己的显卡驱动 选择对应的版本(我的NVIDIA-Linux-x86_64-384.69.run)

官网下载地址:www.nvidia.cn/Download/index.aspx

安装步骤:

cd ~/Downloads

chmod +x  NVIDIA-Linux-x86_64-384.69.run

sudo service lightdm stop

ctrl+alt+f1进入字符界面

sudo ./NVIDIA-Linux-x86_64-384.69.run -no-opengl-files -no-x-check -no-nouveau-check

安装好之后 sudo rm /etc/X11/xorg.conf   ~/.Xauthority (防止linux登陆界面无限循环或者分辨率不对)

sudo service lightdm start

回到桌面

输入nvidia-smi 输出如下:则安装成功

2.安装CUDA8.0

cuda8.0下载地址

1.下载完之后:sudo sh cuda_8.0.27_linux.run

sudo gedit /etc/profile

打开“profile”文件,在末尾处添加(注意不要有空格,不然会报错):

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

export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:$LD_LIBRARY_PATH

2.重启电脑:

sudo reboot

3,测试

cd /usr/local/cuda-8.0/samples/1_Utilities/deviceQuery

sudo make

./deviceQuery

输出是GPU的信息说明安装成功

3,安装cudnn6.0

cudnn下载

下载完成之后解压到指定目录

tar -zxvf cudnn-8.0-linux-x64-v6.0.tgz -C ../cudnn/

把下载好的cudnn.h文件和lib文件分别拷贝到cuda对应的路径下面。

sudo cp ~/cudnn/cuda/include/cudnn.h  /usr/local/cuda/include

sudo cp ~/cudnn/cuda/lib64/lib*   /usr/local/cuda/lib64/

做个链接 不然后面caffe make test 会报链接共享库错误的问题

ln -sf ~/cudnn/cuda/lib64/libcudnn.so.6 /usr/local/cuda/lib64/

4,opencv(包含contrib模块)编译安装 (直接建一个shell文件运行即可完成自动编译安装)

cd$HOME

sudo apt-get install -y \

libglew-dev \

libtiff5-dev \

zlib1g-dev \

libjpeg-dev \

libpng12-dev \

libjasper-dev \

libavcodec-dev \

libavformat-dev \

libavutil-dev \

libpostproc-dev \

libswscale-dev \

libeigen3-dev \

libtbb-dev \

libgtk2.0-dev \

cmake \

pkg-config

#Python 2.7

sudo apt-get install -y python-dev python-numpy python-py python-pytest -y

#GStreamer support

sudo apt-get install -y libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev

git clone https://github.com/opencv/opencv.git

cd opencv

git checkout -b v3.2.0 3.2.0

#This is for the test data

cd$HOME

git clone https://github.com/opencv/opencv_extra.git

cd opencv_extra

git checkout -b v3.2.0 3.2.0

cd$HOME/opencv

mkdir build

cd build

cmake \

-DCMAKE_BUILD_TYPE=Release \

-DCMAKE_INSTALL_PREFIX=/usr \

-DBUILD_PNG=OFF \

-DBUILD_TIFF=OFF \

-DBUILD_TBB=OFF \

-DBUILD_JPEG=OFF \

-DBUILD_JASPER=OFF \

-DBUILD_ZLIB=OFF \

-DBUILD_EXAMPLES=ON \

-DBUILD_opencv_java=OFF \

-DBUILD_opencv_python2=ON \

-DBUILD_opencv_python3=OFF \

-DENABLE_PRECOMPILED_HEADERS=OFF \

-DWITH_OPENCL=OFF \

-DWITH_OPENMP=OFF \

-DWITH_FFMPEG=ON \

-DWITH_GSTREAMER=ON \

-DWITH_GSTREAMER_0_10=OFF \

-DWITH_CUDA=ON \

-DWITH_GTK=ON \

-DWITH_VTK=OFF \

-DWITH_TBB=ON \

-DWITH_1394=OFF \

-DWITH_OPENEXR=OFF \

-DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-8.0 \

-DCUDA_ARCH_BIN=6.2 \

-DCUDA_ARCH_PTX=""\

-DINSTALL_C_EXAMPLES=ON \

-DINSTALL_TESTS=ON \

-DOPENCV_TEST_DATA_PATH=../opencv_extra/testdata \

../

#Consider using all 6 cores; $ sudo nvpmodel -m 2 or $ sudo nvpmodel -m 0

make -j4

编译可能遇到的问题:cudalegacy/src/graphcuts.cpp:120:54: error: ‘NppiGraphcutState’ has not been declared

解决方案:需要修改一处源码:

在graphcuts.cpp中将

#if !defined (HAVE_CUDA) || defined (CUDA_DISABLER)

改为

#if !defined (HAVE_CUDA) || defined (CUDA_DISABLER) || (CUDART_VERSION >= 8000)

5,编译安装caffe

(1)将终端cd到要安装caffe的位置。

(2)从github上获取caffe:

git clone https://github.com/BVLC/caffe.git

(3)因为make指令只能make

Makefile.config文件,而Makefile.config.example是caffe给出的makefile例子,因此,首先将Makefile.config.example的内容复制到Makefile.config:

sudo  cp  Makefile.config.example  Makefile.config

(4)打开并修改配置文件:

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/includeLIBRARY_DIRS:=$(PYTHON_LIB) /usr/local/lib /usr/lib 修改为: INCLUDE_DIRS:=$(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serialLIBRARY_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的位置,所以需要更改这一路径.

(5)修改makefile文件

打开makefile文件,做如下修改:

将:NVCCFLAGS+= -ccbin=$(CXX) -Xcompiler -fPIC$(COMMON_FLAGS)替换为:NVCCFLAGS+=-D_FORCE_INLINES      -ccbin=$(CXX)  -Xcompiler  -fPIC$(COMMON_FLAGS)

(6)编辑/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!

(7)编译

make  all  -j8  #-j根据自己电脑配置决定

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,080评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,422评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,630评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,554评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,662评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,856评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,014评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,752评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,212评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,541评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,687评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,347评论 4 331
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,973评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,777评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,006评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,406评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,576评论 2 349

推荐阅读更多精彩内容