LINUX系统下caffe开发环境的配置(利用GPU和CUDNN加速)

2017-01-13 11:41:09来源:CSDN作者:sinat_34474705人点击

本人研究生的方向是计算机视觉和机器学习,因最近需要学习深度学习,并在caffe平台上训练模型,自己捣鼓了一段时间,总算在windows10和ubun16.04上把caffe配置好了。因在ubuntu上配置比windows10上麻烦一点,这里只给出了在ubuntu上的配置过程。

ps:该过程笔者在两台电脑上均配置成功,这里以在台式电脑上配置为例(其实过程都一样,就是感觉用笔记本跑caffe有点吃不消)

1. 配置环境

  • linux(ubuntu 16.04)
  • caffe-master
  • opencv-3.1.0
  • NVIDIA GTX 1050TI
  • Cuda-8.0
  • cuDNN-5.1

    配置内容包括caffe主模块(即:caffe相关依赖库的安装和caffe-master的编译)和加速模块(即:CUDA和cuDNN加速模块的配置)。

本人在配置过程中主要参考了一下两篇教程:
http://www.linuxdiyf.com/linux/21717.html
http://www.linuxdiyf.com/linux/24659.html

这里强烈建议两点
- 先配置主模块,等编译成功后再配置加速模块,要不然到最后遇到各种乱七八糟的错误都不知道是哪里出了问题。
- 有条件用GPU跑的就不要用CPU,因为速度真的不是一个级别的。

话不多说,下面进入配置过程。

2. 配置过程

Part 1. caffe主模块配置

1. 安装相关依赖库

# updatesudo apt-get updatesudo apt-get upgrade# essential packagessudo apt-get install build-essentialsudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev   sudo apt-get install --no-install-recommends libboost-all-devsudo apt-get install libopenblas-dev liblapack-dev libatlas-base-devsudo apt-get install python-devsudo apt-get install python-numpysudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev protobuf-compiler libhdf5-serial-dev

2. 安装opencv

经测验,opencv-2.4.13和opencv-3.1.0都能够兼容caffe,不过看到网上有人说3.0版本不支持,这里我也没试过,有兴趣的可以自己尝试一下。这里我以open-3.1.0为例。

1). 官网下载linux下的opencv-3.1.0包

假设这里我已经解压到:home/Software/opencv-3.1.0

2). 编译opencv-3.1.0

这步需要保持联网,因为需要下载一些依赖库。

# compile opencvcd home/Documents/Software/opencv-3.1.0mkdir buildcd buildcmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..make -j8

如果在执行cmake那一行系统提示没有cmake工具时,执行如下代码安装cmake工具再重新执行该步骤即可。

sudo apt install cmake 

最后一步中的-j8表示我的电脑是8核的,如果电脑配置不高可以直接输入“make”就行,就是速度会慢一点,耐心等待到100%就好。

3). 安装opencv-3.1.0

sudo make install

以上几步配置成功后就可以先开始caffe(无GPU情况)的编译了。

3. 编译caffe(无GPU)

1). 下载好caffe-maste压缩包

这里假设我已经将文件解压到:home/Software/caffe-master

2). 修改配置文件

找到caffe-master目录下的Makefile.config.example文件,复制一份到当前路径并命名为Makefile.config(不要直接改源文件,因为你以后如何需要更改配置可以重新复制一份)找到并修改如下代码:

# CPU-only switch (uncomment to build without GPU support).CPU_ONLY := 1

3). 编译caffe

在caffe-master根路径下打开terminal,输入如下代码:

mkdir buildcd buildcmake ..make all -j8 

同样,耐心等待到编译到100%,如果没有错误就OK 了,如果你电脑没有GPU那可以直接跳到最后一步跑一下caffe自带的例子了(提示一下,速度有点慢,但你开心就好。)

Part 2. caffe加速模块的配置

对于那些追求速度的同志们来说,你们的路才走到一半,下面的配置才是最重要的也是最容易出现各种各样错误的,请提前做好心理准备。。。

1. 安装NVIDIA驱动

这里有两种方法,第一种简答,但不一定适用于所有的电脑,可以先试试:
方法一:
进入ubuntu系统的software & updates ,然后点击addtional drivers那一栏,如果系统能检测到相关的NVIDIA驱动,直接点击安装即可。
方法二

1). 下载显卡驱动

从NVIDIA官网查询适合你系统的显卡驱动下载下来,假设这里已经保存到home/Downloads/NVIDIA-Linux-x86_64-xxx.xx.run(xxx.xx为驱动的版本,由自己的电脑决定)

2). 安装显卡驱动

在home/Downloads/下打开terminal,依次输入以下代码:

sudo init 3chmod +x NVIDIA-Linux-x86_64-xxx.xx.runsudo ./NVIDIA-Linux-x86_64-xxx.xx.runsudo init 5

第一行和最后一行是切换ubuntu系统的工作模式,执行完第一行后,通过ctrl+alt+f1键进入命令行模式,然后仔输入剩下的代码;
第二行是给.run文件权限,第三行是执行安装代码,按照提示输入命令就好;
安装成功后,通过第四行代码切换回图形界面(可以发现分辨率发生了变化),因为显卡驱动已经安装成功了,这是可以通过如下命令查看显卡版本信息:

sudo nvcc -V

2. 安装cuda

cuda是NVIDIA显卡的加速工具,有了它,我们跑caffe的速度可以翻好几倍。

1). 下载cuda

进入 https://developer.nvidia.com/cuda-downloads,这里需要先注册一个账号,然后填一下问卷,一步步来就好,之后就可以选择cuda的版本,根据自己的系统来就好。假设这里我已经下载并解压到home/Downloads/cuda_8.0.44_linux.run

2). 安装cuda

进入文件路径,执行如下代码:

chmod +x cuda_8.0.44_linux.run sudo ./cuda_8.0.44_linux.run       

这里会让你输入一些命令,先accept,之后让你选择是否安装图形显卡驱动时选no,因为之前已经安装过了,后面就是yes和默认就好。

3). 配置环境变量

打开.bashrc文件

# open the ".bashrc"sudo vim ~/.bashrc

输入‘i’进入INSERT模式,然后在文件最后加入以下代码:

# add the following codes in the end of the file     export PATH=/usr/local/cuda-8.0/bin/${PATH:+:/${PATH}}export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64/${LD_LIBRARY_PATH:+:/${LD_LIBRARY_PATH}} 

按‘esc’键推出INSERT模式,之后按:wq保存推出。
如果打开文件失败,是因为没有安装vim,通过如下代码安装即可:

# install "vim"sudo apt install vim

4). 检测cuda是否安装成功

cd /usr/local/cuda-8.0/samples/1_Utilities/deviceQuerysudo makesudo ./deviceQuery

如果看到cuda信息,说明安装成功,重启一下电脑。

3. 配置cuDNN

1). 下载cuDNN-5.1

假设这里已经下载并解压到:home/Software/cuda。(cuDNN压缩包是一个cuda文件夹)

2). 拷贝头文件和库文件

进入解压后的路径:home/Software,打开终端,执行如下代码:

sudo cp cuda/include/cudnn.h /usr/local/cuda/include/sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64/

3). 生成软连接

cd /usr/local/cuda/lib64/sudo rm -rf libcudnn.so libcudnn.so.5    sudo ln -s libcudnn.so.5.0.5 libcudnn.so.5    sudo ln -s libcudnn.so.5 libcudnn.so 

4). 设置环境变量和动态链接库

打开/etc/profile文件

sudo gedit /etc/profile

在文件最后加入如下代码并保存退出:

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

打开文件/etc/ld.so.conf.d/cuda.conf

sudo vim /etc/ld.so.conf.d/cuda.conf

在文件中输入如下代码,并保存退出:

/usr/local/cuda/lib64

在终端输入以下代码,让链接文件生效:

sudo ldconfig

4. 重新编译caffe(GPU+cuda+cuDNN)

1). 修改Makefile.config配置文件

# cuDNN acceleration switch (uncomment to build with cuDNN).USE_CUDNN := 1# CPU-only switch (uncomment to build without GPU support).# CPU_ONLY := 1

2). 清除旧的编译文件

在caffe-master下打卡终端,输入如下代码:

make clean

3). 重新编译caffe

mkdir buildcd buildcmake ..make all -j8 

耐心等待吧,你的caffe即将配置完成!

3. 总结

回想本人在配置caffe过程中前前后后重新装了好几次ubuntu系统,总之遇到各种坑,遇到问题就去百度,一步步排除问题。
以上教程是本人亲自实践有效的,如果有感觉不合理的地方,欢迎指出。本人感激不尽!也希望能和同行的各位朋友相互交流,共同学习。

PS:之前看网上的一些教程,在安装cuDnn的时候到第三步就结束了,但其实cuDNN还没有配置成功,这一点体现在对caffe进行编译时,会出现cuDnn : NOT FOUND的配置信息,当然,整个过程中并不会报错,只是你不能享受到cuDnn带来的加速了。(本人特地用同一台电脑对比了一下速度,结果是:成功配置了cuDnn的速度大约是只有cuda没有cuDnn情况下速度的两倍,而只有CPU的速度就不值一提了。打个不太恰当的比方,自行车、汽车、飞机的速度的差距)

配置好之后,可以先学习一下caffe自带的例子,这一块网上教程很多,这里就不多废话了。有时间在下一篇博客中记录。

最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台