转摘http://weibo.com/p/2304189db078090102vdvx

虽然Deep Learning已经不是什么新鲜的东西了,但是由于设备原因,自己一直没有涉足。前几天有幸换了一台自带GPU的Workstation,甚是高兴。于是迫不及待地装了个Ubuntu系统,开始配置DeepLearning框架Caffe。前后共花了差不多两天时间,终于把它配好了。配了这么多年的软件,Caffe应该是我配过最复杂的软件,没有之一。终于知道为什么用Caffe的人这么多,亲自去配它的人这么少了。以下将一步步讲解配置Caffe的过程,希望对初学者有点帮助。PS:虽然官网http://caffe.berkeleyvision.org/installation.html给出了配置的过程,但是非常笼统,看着看着就不知道自己该干嘛了。

 

一、NVIDIA驱动和CUDAToolkit的安装

  1. 安装前需要注意的问题:
    1. 检查自己的GPU是否支持CUDA,linux可用以下命令来查看GPU型号:

Lspci | grep –I nvidia

只要GPU型号可以在https://developer.nvidia.com/cuda-gpus找到,就是支持CUDA的,比如我的GPU型号是:GeForceGTX Titan

 

  1. 检查自己的操作系统是不是CUDA支持的,可以输入以下命令:

uname -m && cat /etc/*release

CUDA支持的操作系统在以下网址可以找到http://docs.nvidia.com/cuda/cuda-toolkit-release-notes/#overview

 

  1. 检查操作系统是否安装了gcc,可用以下命令

gcc –version

很多操作系统都预装有gcc,如果你的没有就先安装一下。

 

  1. 去https://developer.nvidia.com/cuda-downloads下载最新版的CUDA,目前是6.5的。这里注意选择与自己机器和操作系统相匹配的(比如我的是64位的Ubuntu14.04)。友情提醒:文件有点大,大概1G,网速不好的同学请耐心等待。

 

  1. 验证下载的CUDA是否有效:

md5sum 安装包名字>

执行完上述命令后会出现一串md5值,例如我的是:90b1b8f77313600cc294d9271741f4da,看看https://developer.nvidia.com/cuda-downloads/checksums列表中是否能找到你的md5值,如果不能找到,那就说明之前下的安装包有问题,要重新下载。

 

  1. 处理版本冲突问题,第一次安装可以跳过这点。如果之前有装过NVIDIA驱动和CUDA的话,要卸载干净,具体卸载方法参见http://developer.download.nvidia.com/compute/cuda/6_5/rel/docs/CUDA_Getting_Started_Linux.pdf

 

 

  1. 安装时需要注意的问题:
    1. 退出GUI界面,操作方法是:同时按:CTRL+ALT+F1(F2-F6),切换到TTY1-6命令行模式。退出GUI界面后需要输入用户名、密码登陆。登陆后关闭桌面服务:

sudo stop lightdm

这步很重要,直接在GUI界面装肯定是会失败的!

 

  1. 官网说安装前需要Interaction with Nouveau,因为Nouveau是一个开源的显卡驱动,Ubuntu14.04默认安装了,但是它可能会影响NVIDIA驱动的安装。这一步我直接跳过了,事实证明并没有影响。(不放心的同学可以按官网http://developer.download.nvidia.com/compute/cuda/6_5/rel/docs/CUDA_Getting_Started_Linux.pdf那样多操作几步。)

 

  1. 现在可以开始安装了。先切换到CUDA安装包所在的位置,执行以下命令:

sudo sh cuda_6.5.14_linux_64.run

这边一路accept-yes-enter就行

执行完后出现以下结果:

Driver: Installed requirereboot

Toolkit: installskip

Samples: installskip

看到了吗,这个CUDA安装包事实上包含了Driver,Toolkit和Samples三部分,第一次安装时把驱动装上了,只不过要重新启动。重新启动了一下,还是跟上面一样,退出GUI,重新执行以下命令:

sudo sh cuda_6.5.14_linux_64.run

结果如下:

Driver:Installed

Toolkit: Installed in/usr/local/cuda-6.5

Samples: Installed in/home/Changzhi, but missing recommendedlibraries

这次就安装成功了,但是缺少了一些推荐的库。

 

  1. 这一步显然要安装那些推荐的库,没什么好说的,按官网推荐的,需要安装以下库:

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

 

 

  1. 装完以后就可以回到GUI界面了,执行

sudo start lightdm

 

  1. 按照官网http://caffe.berkeleyvision.org/installation.html#prerequisites的要求,还需要安装一些dependencies,我的系统是Ubuntu14.04,所以还需要执行以下两步:

sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-devlibopencv-dev libboost-all-dev libhdf5-serial-dev

 

sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-devprotobuf-compiler

 

 

  1. 安装后需要注意的问题:
    1. 设置环境变量:

在/etc/profile最后面添加一句(添加不了的可以切换到root用户)

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

保存后执行以下命令,是环境变量立即生效

source /etc/profile

 

 

  1. 添加lib库路径

在/etc/ld.so.conf.d加入文件cuda.conf,写入

/usr/local/cuda-6.5/lib64

同样,执行下列命令使其立即生效

sudo ldconfig

 

 

  1. 验证安装结果

 

  1. 验证驱动的版本,和上述gcc类似,就是验证驱动和有没有问题

cat /proc/driver/nvidia/version

 

 

  1. 编译例子

先看一下编译器版本,执行

nvcc –V

          不出意外,这里会提示nvcc没有安装,其实就是之前装的NVIDIA-CUDA-Toolkit的编译器没有安装完整,根据提示安装就好:

               sudoapt-get install nvidia-cuda-toolkit

                    这个安装也需要很长时间,请耐心等待。安装完后就可以编译例子了,例子默认安装在/home/username/NVIDIA_CUDA-6.5_Samples,进入这个目录,执行

               make

        该过程也比较漫长,请耐心等待。

 

  1. Running the binaries.

全部编译玩后,进入/home/username/NVIDIA_CUDA-6.5_Samples/bin/x86_64/linux/release,执行

sudo ./deviceQuery

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

Note: 如果大家第一次安装显示的CUDA driver version和runtimeversion是一样的话,以下标绿的部分可以略过。


第一次安装时,出现了“cuda driver version isinsufficient for
cudaruntime”这个错误,就是默认安装时cuda版本是6.5,但是驱动版本还是5.5。解决这个问题肯定是安装个6.5版的cuda驱动就行
了。但问题没有那么简单。我从官网下了6.5的cuda驱动,安装后,别说解决问题,连ubuntu系统都进不去了。开机时就左上角有个小横线在一闪一闪
的,还什么都不能输入,真是能把人急死!后来网上找到了解决办法如下:

   login the system using root recover mode,execute:

       sudo apt-get purge nvidia*

       sudo apt-get install nvidia-current

       sudoreboot

 

系统启动不了原因是显卡驱动冲突,所以我们只需卸载干净前一个驱动,只保留一个最新版的驱动即可。这个recovermode开机时按住左边的shift键就可以进入。

 

至此,NVIDIA驱动和CUDAToolkit的安装完成。

 

二、BLAS的安装

这边选择的是很多网友推荐的intel MKL,这个是收费软件,但学生可以申请免费使用,申请地址https://software.intel.com/en-us/intel-education-offerings#pid-2460-93,这里注意选择自己对应操作系统的版本,还要申请时只能用edu的邮箱。这个软件非常大,3G+,下载时可以选择在线安装或者离线下载,这里强烈推荐离线下载再安装,因为我就是在线安装时出现问题了,后来卸载重新离线安装的。我是linux系统,所以下载的是parallel_studio_xe_2015_update1.tgz,解压后进入目录,执行

sudo ./install_GUI.sh

这是GUI界面安装,和windows一样,按照提示一步步安装就行了,路径什么的选择默认就好。装好后需要添加library路径,具体操作是在/etc/ld.so.conf.d/下新建文件intel_mkl.conf,没权限的话切换到root用户来操作,建好后在文件中添加:

/opt/intel/lib/intel64

/opt/intel/mkl/lib/intel64

安装mkl时如果不是选择默认路径的,以上操作记得换成自己的安装路径。添加完内容后执行以下命令使其立即生效。

sudo ldconfig

 

 

三、OpenCV的安装

这个尽量不要手动安装, Github上有人已经写好了完整的安装脚本:https://github.com/jayrambhia/Install-OpenCV,下载后解压,然后进去该目录,选择自己的操作系统,比如我的是Ubuntu,执行

sudo ./dependencies.sh

sudo ./open2_4_9.sh

其中第一步是安装依赖项,第二部是安装opencv,这个过程大概二三十分钟,慢慢等。

 

四、Caffe的安装和编译

Caffe下载地址:https://github.com/BVLC/caffe

下载后,进入Caffe目录执行

cp Makefile.config.example Makefile.config

然后修改Makefile.config中的BLAS:= atlas为BLAS := mkl,保存退出就行了。

最后是编译,执行以下三条命令:

make all

make test

make runtest

前两步是肯定没问题的,第三部runtest,最后会有两项不通过,但是还是pass了,不影响,应该是没装python的原因。如果不需要在python下用caffe,就可以不管了。

至此Caffe安装完成!