Ubuntu环境下安装GPU版本的caffe


 


大部分内容来自于对一些网上内容的整理,在安装的过程中发现很难找到一个讲得十分完整详细的教程,一部分教程存在内容不全或者按照教程作者的说法没有达到既定效果的现象,结合自己的安装经历,共引用了三个教程的部分内容,按照以下所说的顺序安装,最后安装成功。

 

按照下面三个教程的步骤走,注意每个教程只是截取其中的一部分,我按照自己的安装历程将这三个教程的内容和一些要注意的点串联起来,只要按照如下所说的步骤来做,应该是能够顺利安装成功的!

 

注意:第一个和第二个教程的顺序应该是可以颠倒一下的,第三个教程是要最后执行的,因为第三个教程在编译caffe的过程中要用到前面教程所安装的东西,否则会发生编译错误。

 

 

三个教程分别是:

 

1.Ubuntu16.04 14.04安装配置Caffe(GPU) -小红尘 -博客园  http://www.cnblogs.com/go-better/p/7161006.html只使用第2步,安装NVIDIA驱动部分

2.Caffe学习笔记2--Ubuntu 14.04 64bit安装CaffeGPU版本)- 优快云博客  http://blog.youkuaiyun.com/zouyu1746430162/article/details/53424058只使用第0-2步,安装CUDAcuDNN部分

3.Ubuntu14.04搭建Caffe(CPU- 一生不可自决- 博客园  http://www.cnblogs.com/xuanxufeng/p/6016945.html 使用本教程的全部内容

 

下面对这几个教程分别使用的部分进行系统详细的整理。

1.安装NVIDIA驱动。

 

(1) 查询NVIDIA驱动

 

首先去官网 http://www.nvidia.com/Download/index.aspx?lang=en-us查看适合自己显卡的驱动并下载:驱动文件后缀名应当是以.run结尾的。我们要把这个文件移动到根目录下,也可以移动到其他不含中文的目录下,但要记住这个绝对路径,因为下面要用到。不直接放在默认的”~/下载目录下是因为下面我们要切换到字符界面下,如果放到~/下载 下面,我们没有办法进入下载这个目录(因为在字符界面下没有中文输入法,且中文全部是乱码)。

 

 

 

 

点击右下角的search进入下载页面

 

 

 

我下载后的驱动文件是:NVIDIA-Linux-x86_64-384.90.run(因系统和gpu不同而异)。

注意,现在要记下该驱动文件的全称,因为进入字符界面安装的时候会用到,本来想在图形界面里复制一下驱动的全称然后再粘贴到命令符界面下的,后来发现行不通,好像由于命令符界面和图形界面并不是共用的一个剪贴板,所以在前者复制完内容之后并不能粘贴到后者,因此最好在退出图形界面,进入命令符界面之前记下驱动的全称

2)安装驱动

 

在终端下输入:

 

sudo gedit /etc/modprobe.d/blacklist.conf


输入密码后在刚刚所打开文件的最后一行加上 blacklist nouveau .   这里是将 Ubuntu 自带的显卡驱动加入黑名单。

 

 在终端输入:

 

sudo update-initramfs -u


然后重启电脑

 

这里要尤其注意,安装显卡驱动要先切换到Linux字符界面,(Ctrl+Alt+F1~F6进入字符界面,按Ctrl+Alt+F7进入图形界面)。所以,启动电脑后,先进入字符界面。

然后,输入命令:

 

sudo service lightdm stop

现在可以安装驱动了:


cd ~
sudo ./NVIDIA-Linux-x86_64-384.90.run


(可能会command not found提示用bash,那就sudo bash NVIDIA-Linux-x86_64-384.90.run,或者需要chmod一下),按照提示一步步来

 

完成后,再次重启电脑。

 

在图形界面下输入以下指令进行验证:

 

sudo nvidia-smi

若列出了GPU的信息列表则表示驱动安装成功。如下图:

 

 

 

2.安装CUDAcuDNN

(1).安装CUDA

 

下载CUDA,从https://developer.nvidia.com/cuda-downloads,下载对应版本的cuda安装包,我下载的是deblocal)版,

安装CUDA,运行如下命令,即可安装CUDA

sudo dpkg -i cuda-repo-ubuntu1404_8-0-local-ga2_8.0.61-1_amd64.deb
sudo apt-get update
sudo apt-get install cuda

安装完成后,重启一下;

(2).安装cuDNN

 

下载cuDNN,从https://developer.nvidia.com/rdp/cudnn-download,注册,然后下载,我下载到的是cudnn-8.0-linux-x64-v6.0-prod.tgz

注意事项:

有可能由于最新cuDNN不稳定,导致后续caffe工程编译失败,报出如下错误,详情参考这个链接(https://stackoverflow.com/questions/36637923/caffe-error-make-test),这时可以回退一下,下载较新版本的cuDNN


CXX src/caffe/test/test_im2col_layer.cpp
In file included from ./include/caffe/util/device_alternate.hpp:40:0,
                 from ./include/caffe/common.hpp:19,
                 from ./include/caffe/blob.hpp:8,
                 from src/caffe/test/test_im2col_layer.cpp:5:
./include/caffe/util/cudnn.hpp: In function ‘void caffe::cudnn::createPoolingDesc(cudnnPoolingStruct**, caffe::PoolingParameter_PoolMethod, cudnnPoolingMode_t*, int, int, int, int, int, int)’:
./include/caffe/util/cudnn.hpp:127:41: error: too few arguments to function ‘cudnnStatus_t cudnnSetPooling2dDescriptor(cudnnPoolingDescriptor_t, cudnnPoolingMode_t, cudnnNanPropagation_t, int, int, int, int, int, int)’
         pad_h, pad_w, stride_h, stride_w));
                                         ^
./include/caffe/util/cudnn.hpp:15:28: note: in definition of macro ‘CUDNN_CHECK’
     cudnnStatus_t status = condition; \
                            ^
In file included from ./include/caffe/util/cudnn.hpp:5:0,
                 from ./include/caffe/util/device_alternate.hpp:40,
                 from ./include/caffe/common.hpp:19,
                 from ./include/caffe/blob.hpp:8,
                 from src/caffe/test/test_im2col_layer.cpp:5:
/usr/local/cuda/include/cudnn.h:799:27: note: declared here
 cudnnStatus_t CUDNNWINAPI cudnnSetPooling2dDescriptor(
                           ^
Makefile:572: recipe for target '.build_release/src/caffe/test/test_im2col_layer.o' failed
make: *** [.build_release/src/caffe/test/test_im2col_layer.o] Error 1

拷贝cuDNN库文件到cuda目录下,

tar -zxvf cudnn-8.0-linux-x64-v6.0-prod.tgz
cd cuda
sudo cp lib64/* /usr/local/cuda/lib64/
sudo cp include/cudnn.h /usr/local/cuda/include/

设置环境变量,在/etc/profile 中添加 CUDA 环境变量,

sudo gedit /etc/profile

在打开的文件中加入如下两句话

export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH

保存后,使环境变量立即生效,

source /etc/profile

进入/usr/local/cuda/samples ,执行下面的命令来 build samples

sudo make all -j4

全部编译完成后,进入 samples/bin/x86_64/linux/release ,运行 deviceQuery

./deviceQuery

如果出现显卡信息,则驱动及显卡安装成功,结果如下:

 

 

3.搭建caffe环境

 

1.安装依赖

 

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


PYTHON需要2.7版本,这是操作系统本身已经安装好的.输入python2.7 --version会显示具体的版本号说明安装了.

但是还需要   

 sudo apt-get install python-dev

2.下载Caffe

使用Git直接下载Caffe非常简单,或者去https://github.com/BVLC/caffe下载。下载完成后,会在home目录下的下载里找到caffe-master.zip,用unzip命令解压到家目录下,然后重命名为caffe.

 

3.编译Caffe

 

1)切换到Caffe所在目录

cp Makefile.config.example Makefile.config

2 )修改配置文件 Makefile.config

 

USE_CUDNN := 1前面起注释作用的#号去掉(因为我们要使用它来加速)

配置一些引用文件(增加部分主要是解决新版本下,HDF5的路径问题)

INCLUDE_DIRS := $(PYTHON_INCLUDE)  /usr/local/include  /usr/include/hdf5/serial
LIBRARY_DIRS := $(PYTHON_LIB)  /usr/local/lib   /usr/lib /usr/lib/x86_64-linux-gnu/hdf5/serial
BLAS := atlas

计算能力 mkl > openlas >atlas

3)编译 Caffe注意此时是在caffe根目录下的,如果中间由于其他原因切换到其他目录了,务必要切换回来

 

make all -j8
make test -j8
make runtest -j8


另外, 这个make默认是用单核运算,如果想要快一点,比如我想使用四核,make后面加上-j4标签。

如果上面4行某一行报错之后想要重试,建议先make clean再重新开始。

4.编译Python接口

Caffe拥有python\C++\shell接口,在Caffe使用python特别方便,在实例中都有接口的说明。

 

1)确保pip已经安装

sudo apt-get install python-pip

2 )执行安装依赖

caffe根目录的python文件夹下,有一个requirements.txt的清单文件,上面列出了需要的依赖库,按照这个清单安装就可以了。

在安装scipy库的时候,需要fortran编译器(gfortran),如果没有这个编译器就会报错,因此,我们可以先安装一下。

首先回到caffe的根目录,上面两句话所说内容的安装代码如下:

 

cd ~/caffe
sudo apt-get install gfortran
cd ./python
for req in $(cat requirements.txt); do pip install $req; done


安装完成以后,再次回到caffe 根目录我们可以执行:

 

sudo pip install -r python/requirements.txt

就会看到,安装成功的,都会显示Requirement already satisfied, 没有安装成功的,会继续安装。

 

3)编译python接口

 

make pycaffe -j8


 

--结果显示ALL TESTS PASSED就安装好了!

 

4)运行python结构

首先确保自己在caffe/python 的目录下,然后运行以下代码(先运行第一行,下面会出现Python的版本号等各种信息,然后输入 import caffe ,回车):

 

$ python2.7
Python 2.7.12 (default, Jul  1 2016, 15:12:24)
[GCC 5.4.0 20160609] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import caffe
>>>


如果没有报错,说明caffe安装全部完成(注意:一定要进入caffe/python再执行python命令,否则import caffe会提示”no moudle named caffe”)

 

进行到这里,整个gpu版本的caffe就安装成功了^_^

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值