您的位置:首页 > 编程语言 > MATLAB

在ubuntu上配置cuda+cudnn+caffe(包括python和matlab接口)+digits

2016-03-14 10:15 549 查看
这篇算是自己对caffe学习的一个总结系列的开头。首先因为caffe的依赖项比较多,配置起来也比较麻烦。这篇算是比较详尽地把caffe的各种相关配置说清楚。转载请注明出处。

推荐ubuntu14.04版本,因为digits的支持比较好。显卡支不支持GPU加速要搞清楚啊,不支持就全用CPU算吧,别浪费时间折腾cuda了。

大家基本要按照官方教程上面来。但是官方教程有的坑没有点出来的,本文也一并列上了。

CUDA的安装

禁用nouveau驱动,nouveau是ubuntu自带的对nivida的开源驱动,对安装nvidia的官方驱动会有问题,所以先将其禁用。

按Ctrl+Alt+F1 进入tty1控制台,输入

sudo vim /etc/modprobe.d/blacklist-nouveau.conf

在里面写上

blacklist nouveau

options nouveau modeset=0

按esc 输入:wq 保存退出

ps:vim编辑器很好用啊,还不会的小伙伴要抓紧时间学啊。

执行

lspci | grep nouveau

查询pci总线中是否还有nouveau,grep后面接正则表达式过滤。

重新启动

sudo reboot

ps:显卡驱动挂掉之后很可能你就看不到系统界面了,启动之后显示器一团漆黑,其实系统是在运行的。我的做法是先提前装好了SSH服务,碰到这种情况就通过另一台电脑SSH登陆进去安装驱动。

CUDA官网下载。其实应该先下载好的,如果没来得及用图形界面下载,用wget, curl什么的下载也一样。 据说331的驱动有坑啊,大家不要用那个驱动。下面安装一些依赖项/

sudo service lightdm stop

sudo apt-get install g++

sudo apt-get install freeglut3-dev

下载好的cuda是一个shell脚本,运行

sudo sh cuda_7.5_linux.run


安装先按空格到文档100%然后回答一些accept,yes的问题,默认就好。安装完成后重启,然后

ls /dev/nvidia*


生成四个左右以nvidia开头的文件,如果有,则说明安装成功。没有可以按照下面方法卸载:

sudo /usr/local/cuda-7.5/bin/uninstall_cuda_7.5.pl
sudo /usr/bin/nvidia-uninstall


最后,配置环境变量,我们直接放在系统配置文件profile里面,先打开profile文件

sudo vi /etc/profile

在最后面加入两行代码:

export PATH=/usr/local/cuda-7.5/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-7.5/lib64:$LD_LIBRARY_PATH


至此cuda安装完毕

CUDNN安装

CUDNN是给CUDA加速的。cudnn官网下载。貌似下载要先注册,审核通过还要几天时间。下载好之后解压。

cd cuda/include
sudo cp *.h /usr/local/include/
cd ../lib64
sudo cp lib* /usr/local/lib/
cd /usr/local/lib
sudo chmod +r libcudnn.so.4.0.4
sudo ln -sf libcudnn.so.4.0.4 libcudnn.so.4
sudo ln -sf libcudnn.so.4 libcudnn.so
sudo ldconfig


这样CUDNN就安装完毕了,是不是很简单啊。

caffe的安装

首先先安装opencv,推荐2.4的版本。opencv1.x是纯C语言编写的,2.x c和c++的包都有,opencv3是只用c++写的。为了别人写的代码也能正常运行,还是推荐装2.x。

opencv2.4安装很简单了,下载下来解压,然后进入目录make, sudo make install就搞定了。

caffe官方下载 基本按照官方安装指南就可以了,有几个坑要稍微注意下。先安装依赖:

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


贾扬清大神还说了,大家一定要看清楚啊!

Note that glog does not compile with the most recent gflags version (2.1), so before that is resolved you will need to build with glog first.

我这里推荐boost-1.55,gflags-2.0,glog-0.3.3。至少这个版本亲测无误。以后这种问题能不能解决不得而知,目前只好这样了。

# glog
tar zxvf glog-0.3.3.tar.gz
cd glog-0.3.3
./configure
make && sudo make install
# gflags
unzip gflags-master.zip
cd gflags-master
mkdir build && cd build
export CXXFLAGS="-fPIC" && cmake .. && make VERBOSE=1
make && sudo make install
# lmdb
cd lmdb/libraries/liblmdb
make && sudo make install


下面开始配置caffe并且开始编译了。

cp Makefile.config.example Makefile.config
# Adjust Makefile.config (for example, if using Anaconda Python, or if cuDNN is desired)
make all
make test
make runtest


配置文件有几点要注意:

# cuDNN acceleration switch (uncomment to build with cuDNN).
# USE_CUDNN := 1
# CPU-only switch (uncomment to build without GPU support).
# CPU_ONLY := 1

BLAS choice:
# atlas for ATLAS (default)
# mkl for MKL
# open for OpenBlas
BLAS := atlas
# Custom (MKL/ATLAS/OpenBLAS) include and lib directories.
# Leave commented to accept the defaults for your choice of BLAS
# (which should work)!
# BLAS_INCLUDE := /path/to/your/blas
# BLAS_LIB := /path/to/your/blas


这几个地方根据自己情况选择。

make all没有问题的话,caffe就算成功了啊。

在开始下面内容之前,我们先用caffe跑个著名的mnist的例子吧(号称深度学习的hello world)。

下载mnist数据

cd ~/caffe
sh data/mnist/get_mnist.sh
sh examples/mnist/create_mnist.sh


运行时,如果你有GPU,则不需要修改配置文件,如果没有gpu,则需要修改配置文件lenet_solver.prototxt

sudo vi examples/mnist/lenet_solver.prototxt


将最后一行的solver_mode:GPU改为solver_mode:CPU

配置好后,就可以运行了

sh examples/mnist/train_lenet.sh


最后正确率反正99%点多吧,这个库已经跑得很好了。

MKL的安装

BLAS: install ATLAS by sudo apt-get install libatlas-base-dev or install OpenBLAS or MKL for better CPU performance.

为了获取更好的性能,我们安装MKL。

先去Intel官网注册下载,学生可以申请学生版,里面会有注册号。

运行里面install脚本就可以安装。

配置MKL:

sudo gedit /etc/ld.so.conf.d/intel_mkl.conf

在文件中添加内容

/opt/intel/lib

/opt/intel/mkl/lib/intel64

注意把路径替换成自己的安装路径。 编辑完后执行

sudo ldconfig

如果改了默认路径,在caffe里面的Makefile.config也要改一下。

# BLAS choice:

# atlas for ATLAS (default)

# mkl for MKL

# open for OpenBlas

BLAS := mkl

Custom (MKL/ATLAS/OpenBLAS) include and lib directories.

Leave commented to accept the defaults for your choice of BLAS

(which should work)!

BLAS_INCLUDE := /path/to/your/blas

BLAS_LIB := /path/to/your/blas

DIGITS的安装

digits官网下载

digits 相当于一个图形化界面,对于初学者来说方便不少。另外还支持torch(另一个深度学习框架)。

这个只要根据官网教程做就可以了,ubuntu14.04就是这么简单,可以直接apt-get。

CUDA_REPO_PKG=cuda-repo-ubuntu1404_7.5-18_amd64.deb &&
wget http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1404/x86_64/$CUDA_REPO_PKG &&
sudo dpkg -i $CUDA_REPO_PKG
ML_REPO_PKG=nvidia-machine-learning-repo_4.0-2_amd64.deb &&
wget http://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1404/x86_64/$ML_REPO_PKG &&
sudo dpkg -i $ML_REPO_PKG
sudo apt-get update
sudo apt-get install digits


python和matlab caffe安装

python

先安装依赖项目:(在caffe/python/requirements.txt里面有详细内容)

for req in $(cat requirements.txt); do pip install $req; done


记得要在requirements的目录下,而且安装了pip哦,easy_install也可以的,稍微改下命令。

然后

make pycaffe

matlab

安装好matlab之后,在配置文件中配置matlab的路径,

# This is required only if you will compile the matlab interface.
# MATLAB directory should contain the mex binary in /bin.
MATLAB_DIR := /usr/local/MATLAB/R2014a
然后:
make matcaffe
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: