1.前言
本教程使用的系统是Ubuntu 14.04 LTS 64-bit,使用的CUDA版本为7.5,使用的NVIDIA驱动版本为352。
如果您使用的Pascal架构显卡,如GTX1080或者新ttx,则必须使用更高版本的驱动和CUDA 8。本教程不适于这种情况,请不要尝试。
Ubuntu每两年发布一次LTS版本(即长期支持版),所以现在已经发布了16.04 LTS版本。鉴于很多程序在新系统下的兼容性还没有测试,本教程依然介绍的是上一个LTS版本上安装Caffe的方法,随后会推出针对于Ubuntu 16.04和CUDA 8的教程。
本教程很多细节已经尽量详细,但是还是要求使用者有一定的Linux基础,后续可能会推出针对于Linux新用户的更为详细的教程。
2.安装基础依赖项
sudo apt-get install build-essential
sudo apt-get install cmake git
3.安装NVIDIA驱动(optional)
如果你没有NVIDIA显卡,或者只需要使用CPU-only模式,请不要安装NVIDIA驱动和CUDA,否则会造成Ubuntu图形界面无法启动。
首先需要关闭图形界面,使用Ctrl+Alt+F1进入虚拟控制台,然后输入用户名和密码登陆。
然后关闭lightdm
sudo /etc/init.d/lightdm stop
然后更新源,并从Ubuntu官方源中安装NVIDIA 352驱动
sudo apt-get install nvidia-352
这是目前官方源中最新的驱动版本,由于Ubuntu 16.04的推出,Ubuntu官方源应该不会再更新14.04的驱动版本。如果需要更高版本的驱动,可以前往NVIDIA官网(http://www.nvidia.com/Download/index.aspx?lang=en-us)进行下载。
然后重启电脑即可。
sudo reboot
PS:用这种方式安装NVIDIA显卡驱动,会自动覆盖Ubuntu的X Server配置,这样如果你的显示器连接的不是NVIDIA显卡,就无法正常启动图形界面。使用Tesla等计算卡的同学们请注意这一点。
4.安装CUDA 7.5(optional)
CUDA的本地安装包中含有NVIDIA驱动,如果没有进行步骤3,安装CUDA时会自动安装NVIDIA驱动,所以没有NVIDIA显卡请不要安装CUDA。另外NVIDIA驱动最好按照步骤3单独安装。
从NVIDIA官网下载CUDA 7.5的deb本地安装包:下载地址(http://developer.download.nvidia.com/compute/cuda/7.5/Prod/local_installers/cuda-repo-ubuntu1404-7-5-local_7.5-18_amd64.deb)
点击如上的链接可以下载支持x86架构CPU和Ubuntu 14.04系统的deb本地安装包,大小约1.9GB,如果需要其他安装方式可以按官网教程进行。
下载完成后,打开Terminal,前往指定的目录,然后执行:
sudo dpkg -i cuda-repo-ubuntu1404-7-5-local_7.5-18_amd64.deb
sudo apt-get update
sudo apt-get install cuda
安装完成后,需要添加环境变量。使用gedit打开如下文档:
sudo gedit /etc/profile
在文件末尾添加:
PATH=/usr/local/cuda/bin:$PATH
export PATH
保存完成后,执行如下命令使环境变量立即生效:
source /etc/profile
然后还需要添加lib的路径:
sudo gedit /etc/ld.so.conf.d/cuda.conf
在文件中写入如下内容然后保存:
/usr/local/cuda/lib64
之后执行如下命令使之生效:
sudo ldconfig
PS:上面的命令使L-D-C-O-N-F-I-G!!! 无数的人把L写成了I,然后告诉我报错。
执行完了这些操作之后,还可以安装CUDA SAMPLES来检测CUDA是否运行正常,鉴于这不是CUDA编程教程,本教程暂不介绍。
4.安装其他的一些依赖项
sudo apt-get install freeglut3-dev libx11-dev libxmu-dev libxi-dev libglu1-mesa-dev
sudo apt-get install libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-dev libgflags-dev libgoogle-glog-dev liblmdb-dev protobuf-compiler
PS:复制粘贴太长的命令可以能因为浏览器的原因导致输入了多余的换行符,如果复制粘贴带有换行符的命令进Terminal,会被当做两条命令来执行,一定要注意这一点。
5.安装ATLAS
本步骤可以用OpenBLAS或者Intel MKL替代。我在E5-2690v2+GTX780的平台上测试过这三种库,性能相差无几,这里就介绍其中一种:
sudo apt-get install libatlas-base-dev
然后自动安装完成即可。
目前intel MKL是收费软件,OpenBLAS可以免费下载和安装。如果使用这两种库,编译Caffe时要在Makefile.config做出对应的修改。
6.安装OpenCV
从OpenCV官网上下载OpenCV官网上下载OpenCV的未编译源代码:
点击这里:http://opencv.org/downloads.html
国内很多网络打开OpenCV官网速度缓慢,可以点击如下地址直接从GitHub上下载OpenCV 3.1的源代码。
下载地址:https://codeload.github.com/opencv/opencv/zip/3.1.0
下载完成后解压缩,然后在Terminal中转到该目录下,执行
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
make -j10
PS:上一句代码中的-j10指10线程同时编译,根据自己CPU的特点调整该参数,如果不了解自己CPU,直接执行make即可。
sudo make install
7.下载Caffe
从GitHub上直接下载Caffe的最新版
git clone https://github.com/BVLC/caffe.git
也可以从Caffe的GitHub工程中下载Caffe的历史版本:
https://github.com/BVLC/caffe
8.安装Python(optional)
先安装相关依赖项
sudo apt-get install python-dev python-pip
转到下载的caffe的目录下,然后转到python目录下
cd python
执行如下命令:
for req in $(cat requirements.txt); do sudo pip install $req; done
等待其自动安装即可。
9.安装MATLAB(optional)
本步骤为可选项目,MATLAB为收费软件,请支持正版。
10.配置cuDNN(optional)
cuDNN需要注册Accelerated Computing Developer Program,然后可以免费下载。
cuDNN是The NVIDIA CUDA Deep Neural Network library,对于使用NVIDIA显卡进行深度学习加速具有很大的性能提升,非常建议添加。
在如下地址进行注册和下载,支持下载历史版本:
点击这里:https://developer.nvidia.com/cudnn
PS:另外,cuDNN在很多工程中兼容性较差,可能需要安装特定的历史版本。
下载后解压缩,转到该目录下,执行:
sudo cp lib* /usr/local/cuda/lib64/
sudo cp cudnn.h /usr/local/cuda/include/
更新软链接
cd /usr/local/cuda/lib64/
sudo rm -rf libcudnn.so libcudnn.so.5
sudo ln -s libcudnn.so.5.1.3 libcudnn.so.5
sudo ln -s libcudnn.so.5 libcudnn.so
PS:根据你下载的cuDNN版本不同,需要对如上命令中的版本进行修改,以上展示的命令是对于cuDNN 5.1.3的。
11.编译Caffe
在caffe目录下,执行:
cp Makefile.config.example Makefile.config
然后打开Makefile.config,根据自己的需要修改相关参数。
如果使用了cuDNN,则如下行取消注释:
# USE_CUDNN := 1
如上教程中,使用了OpenCV 3.1,则如下行取消注释:
# OPENCV_VERSION := 3
其他可以根据需求修改,比如安装了MATLAB后写入正确的MATLAB安装路径等。
然后进行编译:
make all -j10
make test
make runtest
PS:-j10这一参数已经在前面的教程中说过了,再说一次:
-j10指10线程同时编译,根据自己CPU的特点调整该参数,如果不了解自己CPU,直接执行make即可。
然后可以根据需求编译matcaffe和pycaffe:
make matcaffe
make pycaffe
然后caffe就安装结束了。
12.运行minist demo
转到 Caffe 目录下
sh data/mnist/get_mnist.sh
sh examples/mnist/create_mnist.sh
sh examples/mnist/train_lenet.sh
如果运行正常,caffe就可以正常工作了。
Caffe的官方网站是 http://caffe.berkeleyvision.org/
如果有任何问题可以联系作者:liuyaoyao@tju.edu.cn