1、前置条件验证
(1) Ubuntu14.04操作系统。
(2) 检验计算机是否为NVIDIA显卡,终端输入命令
$ lspci | grep -invidia
(3) 检验计算机是否为x86_64架构(x86架构64位系统),终端输入命令
$ uname -m && cat /etc/*release
(4) 安装gcc,并检查gcc版本是否大于4.6,Ubuntu14.04默认版本为4.8,终端执行下述命令安装即可
$ sudo apt-get install g++
终端输入命令检查版本信息
$ gcc–version
(5) 安装gfortran(编译OpenBLAS使用),终端执行
$ sudo apt-get install gfortran
(6) 常用链接
NVIDIA相关网站https://developer.nvidia.com/cuda-tools-ecosystem
获取计算机GPU(显卡)信息,与下面链接提供的GPU型号进行比对,若型号存在与列表则说明计算机显卡支持CUDA架构
GPU验证链接https://developer.nvidia.com/cuda-gpus
严格考虑计算机的GPU对CUDA Toolkit不同版本(特指高版本)的支持性问题
(比如,若GPU为TITAN X GPU,建议考虑下载CUDA 7.0)
CUDAToolkit7.0下载链接https://developer.nvidia.com/cuda-toolkit-70#linux
2、CUDA配置
(1) MD5校验
下载完成后,对文件进行MD5校验以run文件为例(这很重要),与下列链接对应版本MD5值比对,终端输入命令
$ md5sum filename
若值不一致则需重新下载。
校验链接http://developer.download.nvidia.com/compute/cuda/7_0/Prod/md5sum-7.0.txt
以下cuda安装选用一个即可,其中deb文件安装较简单但对网络稳定要求较高,run文件安装比较稳定。
一些依赖库
$ sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev
其中build-essential包包含make,gcc,gfortran。
(2)CUDA库安装
第一种方式,用deb文件安装
$ sudo dpkg -i cuda-repo-ubuntu1410---local_7.-28_amd64.deb $ sudo apt-get update $ sudo apt-get install -y cuda
完成添加环境变量即可,参见下run安装⑥
第二种方式,用run文件安装
①卸载原先安装的所有NVIDIA显卡驱动,命令
$ sudo apt-get --purge remove nvidia*
② Ubuntu默认安装了开源显卡驱动nouveau其在nvidia驱动安装过程中会有冲突,所以要禁用它创建文件
$ sudo vim /etc/modprobe.d/blacklist-nouveau.conf
写入
blacklist nouveau options nouveau modeset=
可以用cat命令检查,写入无误后执行
$ sudo update-initramfs–u
修改grub相关项
$ sudo vi/etc/default/grub
末尾写入:
rdblacklist=nouveau nouveau.modeset=
保存并退出\检查:
$ cat /etc/default/grub
③测试nouveau是否被禁用
a.重启之后明显感觉画质变差
b.执行
$ lsmod | grep nouveau
如果显示为空,那么就是卸载成功了。
④关闭计算机,重启,这里若出现无法进入桌面的问题(一般是因为安装了opengl与cuda冲突引起),重启,在当进入grub选择菜单时,按下e键,弹出新窗口后,在所在文字后几行找到quiet splash改为text splash,按下F10,即可直接进入命令行模式,登录后再执行上述命令验证。
以下操作建议用root权限
⑤找到所下载的CUDA包,赋予可执行权限
$ chmod +x *.run
安装命令
$ ./ md5sum cuda_7..28_linux_64.run
出现服务条款按Enter间继续,阅读完后接受条款,下载的CUDA包实际包含CUDA安装包、SAMPLE包、NVIDIA驱动,选择对应项安装(建议默认安装),记录下安装目标路径
当执行cuda.run文件提示有关kernel错误时尝试执行命令
$ sudo apt-get install linux-headers-$(uname -r)
⑥安装完成后在/etc/profile中添加环境变量, 文件最后添加:
export PATH=/usr/local/cuda-7.0/bin:$PATH export LD_LIBRARY_PATH=/usr/local/cuda-7.0/lib64:$LD_LIBRARY_PATH
保存,执行
# source /etc/profile
使环境变量立即生效
在目录/etc/ld.so.conf.d/中加入文件 cuda.conf, 内容如下
/usr/local/cuda/lib64
编辑文件/etc/ld.so.conf
# vim /etc/ld.so.conf
添加
/usr/local/lib
执行命令使之立即生效
# sudo ldconfig
执行
# cat /proc/driver/nvidia/version
检验驱动程序已正确安装
⑦编译CUDA Sample
进入文件夹执行
# cd /usr/local/cuda-7.0/samples
# make
编译完成后,进入 samples/bin/x86_64/linux/release,运行deviceQuery,若输出显卡相关信息就说明安装成功。
# ./deviceQuery # ./bandwidthTest
3、OpenBLAS安装
以下本人滥用一下符号,用//表示注释(shell注释为#),以避免和linux管理员提示符#歧义。
终端执行
$ sudo make && sudo make install //make CC=gcc-4.8.2 FC=gfortran(自动探测) //make PREFIX=/your/path install(安装路径,做好记录,建议默认/opt/openblas)
编辑文件/etc/ld.so.conf添加
/opt/OpenBLAS/lib
执行命令使之立即生效
$ sudo ldconfig
4、OpenCV安装
可以使用OpenCV安装脚本,下载链接https://github.com/jayrambhia/Install-OpenCV找到对应版本赋予可执行权限,执行即可,安装需要半小时左右,可能出现卡机现象,等待即可。(2.4.9版本编译15%左右会有错误,原因正在查找,使用2.4.10)
5、boost库 配置
下载地址http://sourceforge.net/projects/boost
解压安装,执行命令
$ tar -zxvf boost_1_59_0.tar.gz $ cd boost_1_59_0/ $ ./bootstrap.sh //这个命令大概用于配好环境
运行二步命令后得到一个文件,名字是bjam,运行这个文件:
$ ./bjam //这里需要二十分钟左右
6、Python 库依赖
相关Python库,类似与使用以上库的一些相关驱动
$ sudo apt-get install -y libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-dev $ sudo apt-get install -y libgflags-dev libgoogle-glog-dev liblmdb-dev protobuf-compiler
建议提前安装python库scipy,numpy和python-dev以及pip setuptools
进入caffe-master/python查看requirements.txt,所需库均已在此文件中其中,安装matplotlib之前有相关依赖freetype、libpng(前置依赖zlib)、scipy、numpy。执行
$ sudo pip install –r caffe-master/python/ requirements.txt
一些依赖包不能正常安装(要求连上Google),网上一些教程执行一下命令安装(建议分开执行,以便发现哪个安装出错,未成功安装的单独用源码编译安装)
源码安装采用方案如下,当独下载对应依赖包,按下述方式执行(举例,一般仅要单独安装glog即可,其他未出现错误(若出错可以试试更换网络连接,非校园网情况下未出错))。
glog, gflags, protobuf,leveldb, snappy, hdf5, lmdb参看下载包中README.md文件或INSTALL.txt 文件
以下安装过程严格注意版本要求(参见requirements.txt文件)
(1) glog(google Logging Library)
下载地址:https://code.google.com/p/google-glog/
$ tar xvzf glog-.tar.gz $ ./configure $ make $ sudo make install
(2) protobuf
下载地址https://code.google.com/p/protobuf/downloads/list
配置参考地址http://blog.csdn.net/zaitianaoxiang/article/details/7639125
$ tar -xvzf protobuf-.tar.gz $ cd protobuf- $ ./configure --prefix=/opt/protobuf //可自己选择目录 $ sudo make $ sudo make check $sudo make install
配置环境变量(修改/etc/profile)
$ sudo vim /etc/profile
加入以下部分
PROTOBUF_HOME=/opt/protobuf PROTOBUF_PKG_CONFIG_PATH=${PROTOBUF_HOME}/lib/pkgconfig export data-path="${PATH}:${PROTOBUF_HOME}/bin:" exportPKG_CONFIG_data-path="${PKG_CONFIG_PATH}:${PROTOBUF_PKG_CONFIG_PATH}"
在~/.profile中添加上面两行export代码,否则上面两行export不会生效。
执行命令使环境变量立即生效
$ sudo source /etc/profile
动态链接库路径
$ sudo vim /etc/ld.so.conf
添加这行
/opt/protobuf/lib
为了让动态链接库修改生效
$ sudo ldconfig
ldconfig命令的作用见
http://www.xxlinux.com/linux/article/accidence/technique/20081230/14754.html
(3) leveldb
下载链接http://download.csdn.net/download/cl_gamer/4847996
参考链接http://blog.sina.com.cn/s/blog_560e310001015jfx.html
参考链接http://peter-hoffmann.com/2011/installation-leveldb-ubuntu-python.html
照教程做会编译报错/usr/bin/ld: cannot find –lleveldb,需要把对应的so文件拷贝过去libleveldb.so到/usr/local/lib 下
(4) gflags
下载链接 https://github.com/schuhschuh/gflags/releases
解压,打开INSTALL.txt 按照教程做
7、cuDNN配置
官方安装导引及下载链接
https://developer.nvidia.com/rdp/cudnn-download?sid=973300
一般流程为如下
下载cudnn解压,执行拷贝
$ sudo cp cudnn.h /usr/local/include $ sudo cp libcudnn.so /usr/local/lib $ sudo cp libcudnn.so.7.0 /usr/local/lib $ sudo cp libcudnn.so. /usr/local/lib
链接cuDNN的库文件
$ sudo ln -sf /usr/local/lib/libcudnn.so. /usr/local/lib/libcudnn.so. 7.0 $ sudo ln -sf /usr/local/lib/libcudnn.so. 7.0 /usr/local/lib/libcudnn.so $ sudo ldconfig -v
8、Caffe配置
(1) 准备
下载caffe-master 源码包,解压,进入目录caffe-master(注意,以下所有过程都在此目录下执行,往后使用caffe的过程中也得在此目录执行相关操作),执行
$ cp Makefile.config.example Makefile.config
以生成Makefile.config配置文件
修改Makefile.config一定要记得改各依赖库的路径LIBRARY_PATH
配置Makefile.config文件(仅列出修改部分)
启用CUDNN,反注释,去掉"#" USE_CUDNN := ②启用GPU,去掉注释"#" # CPU_ONLY := ③启用OpenBLAS BLAS :=open
(2) 编译caffe
"-j8"是使用CPU的多核进行编译,可以极大地加速编译的速度,建议使用,不能弄过多线程,会出错,4和8合适。
$ make all -j8 $ make test -j8 $ make runtest -j8
建议:在make前,可以用之前的./bandwidthTest等命令测试驱动是否正常
(3) Pycaffe配置
$ make pycaffe
添加环境变量,编辑修改/etc/profile
export PYTHONPATH=/path/to/caffe/python:$PYTHONPATH
同样,执行 source /etc/profile使环境变量立即生效
在python中import caffe 检查是否正确,此时caffe可作为python的一个库使用。
(4) Python IDE
建议用ipython notebook
$ sudo pip install jupyter $ sudo apt-get install -y ipython-notebook pandoc
终端执行jupyter notebook启动,可指定启动后的HOME目录,如
$ jupyter notebook caffe-master