Ubuntu Linux 15.04配置安装Caffe

  最近开始尝试Deep Learning的东西,师兄推荐了Caffe,开始尝试如何配置Caffe运行所需环境。

  OK,开始动手。

  找到Caffe官网的安装指南:http://caffe.berkeleyvision.org/installation.html,着实被安装的预备条件吓了一下,好大一坨,没办法,安装需求,硬着头皮也要上啊,一项一项开始走起~(另外,这篇http://blog.csdn.net/yuxiangyunei/article/details/50165519博文也给出了一些安装步骤,我这里基本都是自己编译的包,并不是同该博文中的使用Ubuntu软件库进行的安装配置,大家可以参考一下这位大牛的步骤。)

1、CUDA和BLAS安装

  CUDA安装包和驱动的下载去NVIDIA官网下就好,Caffe官方推荐的是最新的CUDA 7.0及以上版本,所以,追了一把潮流,来了一个7.5版本的,驱动来个Linux环境下的闭源驱动,如果已经安装Linux下Additional Driver推荐的驱动的话,需要卸载重新安装,这个通过系统工具安装的驱动是没办法安装从官网下载的CUDA工具包的(记得之前是这个样子),这里也没有选择通过apt-get安装的CUDA版本,一步一步走起,感觉能更好的理解整个安装过程,而且,也知道自己安装的东西所在目录吧。

  a) CUDA 7.0安装

    首先,安装对应的依赖包:

    sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev

    ------- deb安装方法(参考自:http://www.linuxidc.com/Linux/2014-10/107501.htm):

    $ sudo dpkg -i cuda-repo-<distro>_<version>_<architecture>.deb

    $ sudo apt-get update

    $ sudo apt-get install cuda

    安装完成后需要配置CUDA的环境变量:

    ~/.bashrc中最后加入:

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

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

    ------- run文件安装方法

    首先,安装显卡的闭源驱动,这里需要删除对应的Ubuntu系统下默认使用的显卡驱动:

    sudo apt-get --purge remove xserver-xorg-video-nouveau

    禁用nouveau驱动:

    在/etc/modprobe.d/blacklist.conf配置文件后边加入(或者单独创建一个文件):

    blacklist nouveau

    options nouveau modeset=0

    重新生成kernel 的initramfs:

    sudo update-initramfs -u

    重启系统。

    登陆界面按下ctrl+alt+F1,进入字符界面,登入系统,关闭lightdm管理器:

    sudo service lightdm stop

    进入NVIDIA闭源驱动所在目录,执行:

    sudo ./<NVIDIA驱动文件>.run

    之后执行对应的CUDA安装文件:

    sudo ./<CUDA安装文件>.run

    注意:这两个文件默认没有执行权限,需要手动添加执行权限:chmod +x <文件名>.run

  b) OpenBLAS安装

    可选的有ATLAS(Caffe的默认选项)、Intel MKL和OpenBLAS,由于ATLAS需要关闭CPU Throttling,这里并没有找到对应的关闭方法,且很多方法现如今都已经无效了,所以,这里使用的是OpenBLAS库文件,这里从Github上下载OpenBLAS:

    git clone https://github.com/xianyi/OpenBLAS

    安装相对就简单很多了,进入OpenBLAS下载目录下

    make && make install PREFIX=<安装的目标目录>

2、Boost安装

   下载对应的Boost安装包,本文用的Boost安装包版本为boost_1_59_0.tar.bz2,解压之:

   tar --bzip2 -xf <目标文件夹>

   进入boost解压目录,可以通过如下命令查看安装帮助:

   ./bootstrap.sh --help

   安装命令:

   ./bootstrap.sh --prefix=<安装目录> // 默认安装目录为/usr/local,我使用的是默认安装目录,因为没有弄明白对应的环境变量设置。。。

   其他详细的安装选项见:http://www.boost.org/doc/libs/1_59_0/more/getting_started/unix-variants.html

如果是自己指定安装目录,博文(http://blog.csdn.net/hbhhww/article/details/7610188)给出了环境变量设置方法,如下:

   设置环境变量

在/etc/profile.d新建可执行文件boost.sh,添加文件内容:

#!/bin/sh
BOOST_INCLUDE=/home/boost-1.48.0/sdk/include/boost 
BOOST_LIB==/home/boost-1.48.0/sdk/lib
export BOOST_INCLUDE BOOST_LIB 

命令行执行:source /etc/profile.d/boost.sh

以后在编译程序时,只需要用:-I$BOOST_INCLUDE -L$BOOST_LIB 即可,还要使用-l指定了链接库。

然后, /etc/ld.so.conf 文件添加so库的环境变量 /home/boost-1.48.0/sdk/lib(主要关键问题)

修改完成后,通过ldconfig命令进行重启

3、protobuf安装

   这里Caffe需要Protobuf(Google自己开发的一套协议框架,感觉很犀利的样子,有一篇博客介绍protobuf的:http://blog.csdn.net/caisini_vc/article/details/5599468),但安装Protobuf之前,需要先行编译安装googlemock和googletest,这里去Github上下载对应的googletest,下载地址:https://github.com/google/googletest,由于googlemock依赖于googletest,且最新版的googlemock已经放到googletest项目中,所以只需要下载googletest即可。

   git clone https://github.com/google/googletest

   进入googletest目录下,执行命令编译安装googletest:

   ./travse.sh

   或者:

   mkdir build && cd build

   cmake ..

   sudo make && make install

   或者分别进入googletest和googlemock文件夹下,分别编译安装,但是应注意先行编译安装googletest,之后是googlemock。

   OK,准备工作完成。

   编译安装protobuf:

   git clone https://github.com/google/protobuf // 下载protobuf

   首先,我们需要生成configure文件,进入protobuf文件夹下,执行:

   ./autogen.sh

   安装命令:

   ./configure --prefix=<安装目录>

   make

   make check

   sudo make instal

4、glog安装

   Google的日志模块,下载:

   git clone https://github.com/google/glog

   安装:

   ./configure && make && make install

   在编译安装Glog的时候,我遇到了这个问题:/configure && make && make install fails with error: expected initializer before \'Demangle\',Github上给出的解决方案是

cd glog

   mkdir build && cd build

   export CXXFLAGS="-fPIC" && cmake .. && make VERBOSE=1

   make

   sudo make install

   在Ubuntu Server 15.04上是有效的。

5、gflags安装

   下载:

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

   安装命令,安装参数详细介绍见INSTALL.md:

   mkdir build && cd build

   ccmake ..      // 按‘c\'配置build系统参数,’e\'忽略警告,设置生成参数信息,‘c’直至‘g’可用,按‘g’生成配置文件(configuration file)

   make

   make test

   make install

  

6、hdf5编译安装

   HDF5下载地址:http://www.hdfgroup.org/HDF5/release/obtainsrc.html,本文用的是HDF5-1.8.16。

   解压:

   tar xvf hdf5-1.8.16.tar

   简单安装方法,进入解压后的源码目录中,执行

   ./configure --prefix=<安装目录>

   make

   make check // 执行测试例程

   make install

   make check-install    // 验证安装.

   同事,HDF5安装也支持CMake工具,关于CMake编译安装的方法或者完整安装方式请见: http://www.hdfgroup.org/HDF5/release/obtainsrc.html中给出的安装文档。

  至此,Caffe强制的依赖包已经安装完成,可选的依赖包如lmdb,leveldb,cuDNN和OpenCV这里不再介绍,注意,如果安装Python Caffe还需要numpy(>=1.7)的软件包和Boost的Python支持。