操做系统:Ubuntu14.04 64bitspython
处理器:Intel core i7-4790k 8核4GHzlinux
GPU:GTX TITAN Xbash
cuda:cuda7.0app
NVIDIA驱动:NVIDIA346.72ide
blas:mkl学习
安装过程:优化
(一)Ubuntu系统安装ui
最好安装Ubuntu14.04,对caffe的支持最好,另外,安装完Ubuntu以后不要更新系统。google
(二)caffe依赖项spa
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
注意,这里安装的都是一些必要的库文件,必须安装。
(三)NVIDIA驱动安装
从NVIDIA官网下载英文版驱动,有.run与.deb两种格式,前者可自选组件进行安装,后者则等效于一键安装。注意要选择与本身gpu想匹配的驱动,没试过中文版驱动,不知道是否可行,不过在官网上下载中文驱动的时候会出现乱码。下载完驱动以后(我下的.run文件)按照官网的安装说明进行安装,大致步骤以下:
一、利用sudo gedit /etc/modprobe.d/blacklist-nouveau.conf新建blacklist-nouveau.conf文件,输入命令
blacklist nouveau blacklist lbm-nouveau options nouveau modeset=0 alias nouveau off alias lbm-nouveau off
保存并退出。这一步是为了禁掉Ubuntu自带开源驱动nouveau。以后sudo reboot重启系统。在终端执行命令
lsmod | grep nouveau
能够查看nouveau模块是否被加载。若是什么都没输出,则执行下一步。
二、重启后屏幕分辨率变低,不用管。进入tty1文件模式,输入用户名密码后登录,输入命令
sudo /etc/init.d/lightdm stop
关闭xserver。注意,安装NVIDIA驱动须要以root用户登录,因此利用命令sudo su进入root。输入命令
bash NVIDIA-LINUX-X86_64-346.72.run --kernel-source-path=/usr/src/linux-headers-3.*.*
进行安装。这里的linux-headers-3.*.*是Linux系统源文件名。安装过程当中有一些提示问题让你回答,注意,当提示
The distribution-provided pre-install script failed!Are you sure you want to continue?
的时候不用管,继续安装就好了,这个问题我至今没明白是什么缘由致使的,但这不影响后续安装及使用。当提示
Would you like to register the kernel module sources with DKMS?This will allow DKMS to auomatically build a new module,if you install a different kernel later
的时候,回答No。
三、最好再执行命令
sudo apt-get install linux-image-extra-virtual
不然后续可能会出现以下错误提示:
modprobe: ERROR: could not insert'nvidia':Unknown symbolinmodule,or unknown parameter(see dmesg)
四、执行sudo /etc/init.d/lightdm start并重启电脑。重启后可能会产生分辨率问题,只须要更改/etc/X11/xorg.conf文件以下:
Section 'Monitor' ** ** HorizSync 31.5 - 61.0 VertRefresh 50.0 - 75.0 ** ** Section 'Screen' Modes "800x600@72" "800x600@75" "800x600@56" "800x600@60" "640x480@75" "832x624@75" "640x480@72" "1024x768@75" "640x480@60" "1024x768@70" "1024x768@60" "1280x960@60" EndSubSection
(四)cuda7.0安装
注意,caffe推荐安装最新版NVIDIA驱动,因此cuda内置的驱动咱们就不须要安装了,cuda的安装彻底按照官网教程进行,过程比较简单,这里再也不赘述,若有问题能够留言咱们相互讨论。但注意一点是安装完成以后须要修改环境变量,只需在/etc/ld.so.conf.d/下新建一个cuda.conf文件,将cuda库路径(默认是/usr/local/cuda-7.0/lib64)加入以后保存便可。
(五)MKL的安装
caffe所须要的blas咱们安装mkl,虽然mkl的下载稍微有点麻烦,但安装起来仍是很快的。下载的时候只须要在官网申请学生免费版,用你的邮箱注册以后会自动收到下载指南以及一个lic注册文件,按照指示下载便可,安装也较为简单,这里只提几点注意事项:
一、一个mkl安装文件能够同时被几个用户使用,因此没必要重复下载。
二、安装的时候必须将安装包放置在Ubuntu可以识别的文件系统中,推荐~/,不然没法执行.sh脚本文件。
三、安装以后须要把mkl库路径(/opt/intel/lib以及/opt/intel/mkl/lib/intel64)加入环境变量。
(六)若是要使用Python接口,那么还须要另外安装一些Python库文件(Ubuntu自带Python不能知足咱们的须要)
sudo apt-get install python-numpy python-scipy python-dev
(七)若是须要使用matlab接口,那么推荐新版本的matlab好比R2013a/b,R2014a/b等,我安装的R2014b,没任何问题。
(八)编译配置caffe
下载caffe文件并解压至某一目录caffe-root,注意修改makefile文件当中的一些路径。执行一下命令
cd caffe-root/caffe-master
cp Makefile.config.example Makefile.config
make all
make test
make runtest
在make编译过程当中会遇到一些问题,多是由caffe自己文件兼容性问题形成的,好比:
一、提示make:protoc:命令未找到,这是由于protoc未安装,只需安装就行。
sudo apt-get install protobuf-c-compiler protobuf-compiler
二、提示“src/caffe/util/math_functions.cu(140):errot:calling a host function("std::signbit")from a globalfunction("caffe::sgnbit kernel")is not allowed”,
修改./include/caffe/util/math_functions.hpp 224行
删除(注释):using std::signbit
修改:DEFINE_CAFFE_CPU_UNARY_FUNC(sgnbit, y[i] = signbit(x[i]));
这是Yangqing Jia给出的解决方案,目前只有这一种方法。
我在编译的时候只对于某些版本的caffe会遇到状况2,对于第一个问题只要你按照前面的步骤作了应该不会出现的。虽然装这个花了好几天,不过总算是本身的努力换来了回报,但愿caffe之后能优化的更完美,不要再在编译的时候赶上这么多麻烦,对于初学者是很不利的。但愿你们共同窗习,共同进步吧!