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支持。