ubuntu 1404下亲手配置caffe+cuda7.5

来源:互联网 发布:淘宝主图视频上传过程 编辑:程序博客网 时间:2024/05/17 09:10

配置参考了博客:https://ouxinyu.github.io/Blogs/20151108001.html

第一部分:安装CUDA Toolkit7.5

参考官网信息:http://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#axzz48JszBYZR

1 用命令查看显卡信息,lspci | grep -i nvidia
发现显卡是: GM200 【GeForce GTX TITAN X】

2 查看Linux系统信息,uname -m && cat /etc/*release
查看内核版本, uname -r
手动安装内核版本所需要的头文件等,sudo apt-get install linux-headers-$(uname -r)

3 下载安装包deb,然后运行,sudo dpkg -i 安装包.deb
sudo apt-get update
sudo apt-get install cuda

4 设置环境变量,
exportPATH=/usr/local/cuda7.5/bin:PATH (注意是:,而不是分号;)
exportLDLIBRARYPATH=/usr/local/cuda7.5/lib64:LD_LIBRARY_PATH

5 进入/usr/local/cuda/samples,安装cuda samples
sudo make all
全部编译完成后, 进入 samples/bin/x86_64/linux/release, 运行deviceQuery
如果出现显卡信息, 则驱动及显卡安装成功。
*另外可以用命令,cat /proc/driver/nvidia/version 查看安装的驱动信息。
***The version of the CUDA Toolkit can be checked by running nvcc -V

6 如果要用cudnn加速的话,还需要下载对应的cudnn,注意最新版本的caffe需要V4
即将cudnn中的include和lib文件copy到cuda中,

  • tar -zxvf cudnn-7.0-linux-x64-v4-prob.tgz

  • cd cuda

  • sudo cp -r lib64/lib* /usr/local/cuda/lib64/
    (注意,解压后的lib中有四个文件,分别是libcudnn.so, libcudnn.so.4, libcudnn.so.4.0.7, libcudnn_static.a)

  • sudo cp cuda/include/cudnn.h /usr/local/cuda/include/

b. 链接cuDNN的库文件

$ sudo ln -sf /usr/local/cuda/lib64/libcudnn.so.4.0.7 /usr/local/cuda/lib64/libcudnn.so.4

$ sudo ln -sf /usr/local/cuda/lib64/libcudnn.so.4 /usr/local/cuda/lib64/libcudnn.so

$ sudo ldconfig -v

第二部分 Matlab安装和调试(以Matlab 2014b为例)

1.下载

由于该软件为商业软件,请大家自行寻找,安装学习,并确保不使用做商业目的,下载24小时删除……

  1. 预准备

选择Mathworks.Matlab.R2014b.Unix.iso - 右键 - 使用磁盘映像挂载器打开”,进入装载的虚拟光盘,拷贝全部文件至home/Matlab 文件夹(PS:我的原则是能GUI就GUI,喜欢CMD的可以参照执行)

复制Crack/install.jar至 home/Matlab/java/jar/ 并覆盖源文件

$ sudo cp install.jar /home/Matlab/java/jar/

  1. 授权安装文件夹

$ chmod a+x Matlab -R

  1. 安装

$ sudo ./install

选项:不使用Internet安装

序列号: 12345-67890-12345-67890(对应安装文件中的)

默认路径:/usr/local/MATLAB/R2014b

勾选从默认启动路径创建符号链接(实现在任意位置运行matlab启动程序)

激活文件:license_405329_R2014a.lic (对应安装文件中的)

拷贝 libmwservices.so 至 /usr/local/MATLAB/R2014b/bin/glnxa64

$ sudo cp libmwservices.so /usr/local/MATLAB/R2014b/bin/glnxa64/

5.解决编译器gcc/g++版本问题。

因为Ubuntu 15.04的gcc/g++版本是4.9.2,而Matlab 2014a(2015a)的版本是4.7.x所以在使用matla调用mex文件的时候,基本上都会报错,根据报错信息,考虑如下两步解决方案。

A. 降级安装gcc/g++版本为4.7.x

(a). 下载gcc/g++ 4.7.x

$ sudo apt-get install -y gcc-4.7

$ sudo apt-get install -y g++-4.7

(b). 链接gcc/g++实现降级

$ cd /usr/bin

$ sudo rm gcc

$ sudo ln -s gcc-4.7 gcc

$ sudo rm g++

$ sudo ln -s g++-4.7 g++

第三部分 Caffe-Master的安装和测试

对于Caffe的安装严格遵照官网的要求来:http://caffe.berkeleyvision.org/installation.html

一、安装BLAS

这里可以选择(ATLAS,MKL或者OpenBLAS),我这里使用MKL,首先下载并安装英特尔® 数学内核库 Linux* 版MKL(Intel(R) Parallel Studio XE Cluster Edition for Linux 2016),下载链接是:https://software.intel.com/en-us/intel-education-offerings, 使用学生身份(邮件 + 学校)下载Student版,填好各种信息,可以直接下载,同时会给你一个邮件告知序列号。下载完之后,要把文件解压到home文件夹(或直接把tar.gz文件拷贝到home文件夹,为了节省空间,安装完记得把压缩文件给删除喔~),或者其他的ext4的文件系统中。

接下来是安装过程,先授权,然后安装:

$ tar zxvf parallel_studio_xe_2016.tar.gz (如果你是直接拷贝压缩文件过来的)

$ chmod a+x parallel_studio_xe_2016 -R

$ sh install_GUI.sh

PS: 安装的时候,建议使用root权限安装,过程中会要求输入Linux的root口令。(设置方法:命令行:$ sudo passwd)SUDO

二、MKL与CUDA的环境设置

序列号:2JXL-FP6DGL46

  1. 新建intel_mkl.conf, 并编辑之:

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

/opt/intel/lib/intel64

/opt/intel/mkl/lib/intel64

  1. 新建cuda.conf,并编辑之:

$ sudo gedit /etc/ld.so.conf.d/cuda.conf

/usr/local/cuda/lib64

/lib

  1. 完成lib文件的链接操作,执行:

$ sudo ldconfig -v

三、安装Caffe所需要的Python环境

1 按caffe官网的推荐使用Anaconda

去Anaconda官网下载安装包 http://continuum.io/downloads#all

切换到文件所在目录,执行 bash Anaconda-2.3.0-Linux-x86_64.sh

2 在/etc/ld.so.conf最后加入以下路径,并没有出现重启不能进入界面的问题(NOTE:下边的username要替换)
/home/username/anaconda2/lib (注意,一定是anaconda2,不是anaconda)

3 在~/.bashrc最后添加下边路径
export LD_LIBRARY_PATH=”/home/username/anaconda2/lib:$LD_LIBRARY_PATH” (注意,一定是anaconda2,不是anaconda)

四、安装OpenCV3.1

1 参考官网教程:http://docs.opencv.org/3.0-last-rst/doc/tutorials/introduction/linux_install/linux_install.html

2 运行下列命令安装第三方库,
[compiler] sudo apt-get install build-essential
[required] sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
[optional] sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

3 然后下载opencv-3.1.0和opencv_contrib,可以直接下载然后解压,也可以通过如下命令,

git clone https://github.com/Itseez/opencv.git
git clone https://github.com/Itseez/opencv_contrib.git

4 然后创建一个build文件夹,用于编译opencv
cd ~/opencv
mkdir build
cd build
-D BUILD_TIFF=ON
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES_PATH=path to opencv_contrib/modules/ ..

sudo make -j7 ###### runs 7 jobs in parallel

sudo make install

五、安装其他依赖项

  1. Google Logging Library(glog),下载地址:https://code.google.com/p/google-glog/,然后解压安装:

$ tar zxvf glog-0.3.3.tar.gz

$ ./configure

$ make

$ sudo make install

如果没有权限就chmod a+x glog-0.3.3 -R , 或者索性 chmod 777 glog-0.3.3 -R , 装完之后,这个文件夹就可以kill了。

2 其他依赖项,确保都成功

$ sudo apt-get install -y libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-dev libgflags-dev libgoogle-glog-dev liblmdb-dev protobuf-compiler protobuf-c-compiler protobuf-compiler

六、安装Caffe并测试

  1. 安装pycaffe必须的一些依赖项:
    安装annconda后可以不用再装了。

$ sudo apt-get install -y python-numpy python-scipy python-matplotlib python-sklearn python-skimage python-h5py python-protobuf python-leveldb python-networkx python-nose python-pandas python-gflags Cython ipython

2 切换到Caffe-master的文件夹,生成Makefile.config配置文件,执行:

$ cp Makefile.config.example Makefile.config

3 配置Makefile.config文件(仅列出修改部分

a. 启用CUDNN,去掉”#”

USE_CUDNN := 1

b. 启用OpenCV 3.0, 去掉”#”

OPENCV_VERSION =3

c. 启用CUDA
CUDA_DIR := /usr/lcoal/cuda

d. 启用Intel Parallel Studio XE 2016

BLAS := mkl

e. 配置路径,实现caffe对Python和Matlab接口的支持

启用ANACONDA

ANACONDA_HOME := $(HOME)/anaconda2
PYTHON_INCLUDE :=
PYTHON_LIB :=

启用MATLAB

MATLAB_DIR :=

f. 配置一些引用文件(增加部分主要是解决新版本下,HDF5的路径问题),注意,HDF5的lib和库在anaconda2中。

INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/lib/anaconda2/include

LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/anaconda2/lib

  1. 编译caffe-master!!!”-j12”是使用CPU的多核进行编译,可以极大地加速编译的速度,建议使用。注意,我们的计算机是12核的

$ make all -j12 如果出错,就少用了几个核再试试

$ make test -j12

$ make runtest -j12

编译Python和Matlab用到的caffe文件

$ make pycaffe -j12

$ make matcaffe -j12

六、使用MNIST数据集进行测试

Caffe默认情况会安装在CAFFEROOT home/username/caffe-master,所以下面的工作,默认已经切换到了该工作目录。下面的工作主要是,用于测试Caffe是否工作正常,不做详细评估。具体设置请参考官网:http://caffe.berkeleyvision.org/gathered/examples/mnist.html

  1. 数据预处理

$ sh data/mnist/get_mnist.sh

  1. 重建lmdb文件。Caffe支持多种数据格式输入网络,包括Image(.jpg, .png等),leveldb,lmdb,HDF5等,根据自己需要选择不同输入吧。

$ sh examples/mnist/create_mnist.sh

生成mnist-train-lmdb 和 mnist-train-lmdb文件夹,这里包含了lmdb格式的数据集

  1. 训练mnist

$ sh examples/mnist/train_lenet.sh

0 0