Ubuntu14.10+cuda7.0+caffe配置

Posted lcchuguo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ubuntu14.10+cuda7.0+caffe配置相关的知识,希望对你有一定的参考价值。

Ubuntu14.10+cuda7.0+caffe配置

一:linux安装

Linux安装不说了。我这里安装的是ubuntu14.10

 

二:nVidia驱动和CUDA Toolkit的安装和调试(*.run方法)

1: Verify You Have a CUDA-Capable GPU

运行以下的操作,然后验证硬件支持GPU CUDA。仅仅要型号存在于https://developer.nvidia.com/cuda-gpus。就没问题了

         $ lspci | grep -i nvidia

 

2: 、Verify You Have aSupported Version of Linux

         $ uname -m && cat /etc/*release

重点是“x86_64”这一项,保证是x86架构。64bit系统

 

3: Verify the System Has gcc Installed

         $ gcc --version

没有的话就先安装吧,这个是必须的用来编译CUDA Toolkit,只是Ubuntu 14.10是默认有的

 

4: Download the NVIDIA CUDA Toolkit

下载地址:https://developer.nvidia.com/cuda-toolkit

验证地址:https://developer.nvidia.com/rdp/cuda-rc-checksums

$ md5sum filename

比如:md5sum cuda_7.0.28_linux.run ,这个文件的正确 md5 =312aede1c3d1d3425c8aa67bbb7a55e

 

5: Handle Conflicting Installation Methods

依据官网介绍,之前安装的版本号都会有冲突的嫌疑

所以,之前安装的Toolkit和Drievers就得卸载,屏蔽。等等(由于我是新系统。没有安装过nvidia驱动。所以此步能够省略)

         sudo apt-get --purge remove nvidia*

 

6: Graphical Interface Shutdown

退出GUI,也就是X-Win界面。操作方法是:同一时候按:CTRL+ALT+F1(F2-F6),切换到TTY1-6命令行模式。

关闭桌面服务:

$ sudo stop lightdm

 

7: Interaction with Nouveau

Nouveau是一个开源的显卡驱动。Ubuntu14.04 默认安装了,可是它会影响nVidia驱动的安装,所以仅仅有请他回老家了,sorry!

         $ sudo vi /etc/modprobe.d/nvidia-graphics-drivers.conf

写入:blacklist nouveau

保存并退出: wq!

检查:$ cat nvidia-graphics-drivers.conf

$ sudo vi/etc/default/grub

末尾写入:rdblacklist=nouveau nouveau.modeset=0

保存并退出: wq!

检查:$ cat /etc/default/grub

 

8: Installation CUDA 7.0

切换到cuda_7.0.28_linux.run所在的文件夹。然后运行安装命令:

         $ sudo sh cuda_7.0.28_linux.run

这里会一路问你各种问题,基本上就是Accept-yes-Enter-yes-Enter-yes-Enter, 事实上就是让你接受协议。然后安装的默认位置确认等等。recruit就别自己定义安装位置了。默认才是天堂。

运行完后出现下面结果:

 

Driver: Installed requirereboot

 

Toolkit: installskip

 

Samples: installskip

 

看到了吗,这个CUDA安装包其实包括了Driver,Toolkit和Samples三部分。第一次安装时把驱动装上了,仅仅只是要又一次启动。又一次启动了一下,还是跟上面一样,退出GUI。又一次运行下面命令:

 

         $ sudo sh cuda_7.0.28_linux.runsu

 

结果例如以下:

 

Driver:Installed

 

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

 

Samples: Installed in/home/caffe, butmissing recommended libraries

 

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

 

9: Extra Libraries

安装一些必要的库文件,譬如:OpenGL (e.g., Mesa), GLU, GLUT, and X11 (including Xi, Xmu, andGLX).

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

 

10: 驱动装完了,能够回到GUI界面了,也能够继续留这里玩文本。。

         $ sudo start lightdm

 

11:POST-INSTALLATIONACTIONS

(1)环境变量配置

运行sudo vi /etc/profile,在后面加上:

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

        exportLD_LIBRARY_PATH=/usr/local/cuda-6.5/lib64:$LD_LIBRARY_PATH

 

(2) Verify the Installation

a.验证驱动的版本号,事实上主要是保证驱动程序已经安装正常了

       $ cat /proc/driver/nvidia/version

b. Compiling the Examples

       $ nvcc -V

这里安装完。就能够编译了。切换文件夹到~/NVIDIA_CUDA-7.0_Samples:

                  $ cd /home/username/NVIDIA_CUDA-7.0_Samples

                  $ make

这里要等非常长时间。。

c. Running the Binaries

执行编译好的文件,比如看看设备的基本信息和带宽信息:

         $ cd bin/x86_64/linux/release 

         $ ./deviceQuery

         $ ./bandwidthTest

假设測试的时候出现说执行版驱动和实际驱动不符,原因可能是由于后面安装的nvidia-cuda-toolkit更新了配置文件,所以和原始的Cuda-Samples的配置或者是驱动程序有变化,所以检測无法编译通过。考虑以下的解决方法:

a.卸载现有驱动

         $ sudo nvidia-installer --uninstall

b.下载合适版本号的驱动,并安装:

下载地址:http://www.geforce.cn/drivers

         $ sudo sh ./NVIDIA-Linux-x86_65*.run

c. 重装CUDA Toolkit

         $ sudo sh cuda-7.0

Nvidia Cuda安装结束(这里我推荐不要手动装合适NVIDIA驱动。最好是卸载将上述过程再装一遍。由于手动装有可能造成版本号不正确。到时桌面空白的问题-----我是重装了系统。。。

。)

 

三:BLAS安装与配置

1:BLAS安装

这里能够选择(ATLAS。MKL或者OpenBLAS),我这里使用MKL,首先下载并安装英特尔? 数学内核库 Linux* 版MKL,下载链接是:https://software.intel.com/en-us/intel-education-offerings。 请下载Student版。先申请,然后会立刻收到一个邮件(里面有安装序列号),打开照着下载即可了。下载完之后,要把文件解压到home目录(或直接把tar.gz文件复制到home目录,为了节省空间。安装完记得把压缩文件给删除喔~),或者其它的ext4的文件系统中。

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

         $ tar zxvf parallel_studio_xe_2015.tar.gz (假设你是直接拷贝压缩文件过来的)

         $ chmod a+x parallel_studio_xe_2015 -R

         $ sudo ./install_GUI.sh

2:MKL与CUDA的环境设置

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

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

         /opt/intel/lib/intel64

         /opt/intel/mkl/lib/intel64

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

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

         /usr/local/cuda/lib64

         /lib

3. 完毕lib文件的链接操作,运行:

         $ sudo ldconfig –v

 

四.Opencv安装

1. 下载并编译OpenCV(官网原版OpenCV:http://opencv.org/), 或者使用本站提供的改动版的安装包 Install-OpenCV-master(以下的安装方式使用该包完毕,安装包改动了dependencies.sh文件并添加了OpenCV 3.0.0的安装文件,同一时候保留了原来的2.3x和2.4x版)

2. 切换到文件保存的目录,然后安装依赖项:

         $ sudo sh Ubuntu/dependencies.sh

3. 切换文件夹Ubuntu\3.0\安装OpenCV3.0.0rc1:

         $ sudo sh opencv3_0_0-rc1.sh

保证网络畅通,由于软件须要联网这里时间较长。请耐心等待。

。。

。时间非常长!

 

五:安装其他依赖项

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 777glog-0.3.3 -R , 装完之后,这个目录就能够kill了。

2. 其它依赖项,确保都成功

         $ sudo apt-get install -y libprotobuf-dev libleveldb-devlibsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-dev

         $ sudo apt-get install -y libgflags-dev libgoogle-glog-devliblmdb-dev protobuf-compiler

 

六: 安装Caffe并測试

1. 安装pycaffe必须的一些依赖项:

         $ sudo apt-get install -y python-numpy python-scipypython-matplotlib python-sklearn python-skimage python-h5py python-protobufpython-leveldb python-networkx python-nose python-pandas python-gflags Cythonipython

         $ sudo apt-get install -y protobuf-c-compilerprotobuf-compiler

2. 安装配置nVidia cuDNN 加速Caffe模型运算(我们没有安装,由于install.txt中说是针对CUDA6.5)

a. 安装cuDNN

该改版本号caffe-master默认支持cudnn-6.5-linux-x64-v2,使用cudnn-6.5-linux-R1会报错,安装前请去先官网下载最新的cuDNN。

         $ sudo cp cudnn.h /usr/local/include

         $ sudo cp libcudnn.so /usr/local/lib

         $ sudo cp libcudnn.so.6.5 /usr/local/lib

         $ sudo cp libcudnn.so.6.5.48 /usr/local/lib

b. 链接cuDNN的库文件

         $ sudo ln -sf /usr/local/lib/libcudnn.so.6.5.48/usr/local/lib/libcudnn.so.6.5

         $ sudo ln -sf /usr/local/lib/libcudnn.so.6.5/usr/local/lib/libcudnn.so

         $ sudo ldconfig –v

 

3:切换到Caffe-master的目录。生成Makefile.config配置文件。运行:

         $ cp Makefile.config.example Makefile.config

4:配置Makefile.config文件(仅列出改动部分)

a. 启用CUDNN,去掉"#"(眼下caffe-master仍然仅仅支持R1版本号)

USE_CUDNN := 1

b. 启用GPU,去掉凝视"#"

# CPU_ONLY := 1

c: 启用Intel ParallelStudio XE 2015 Professional Edition for C++ Linux

BLAS := mkl

 

5: 配置Makefile文件(实现对OpenCV3.x的支持)

查找“Derive include and lib directories”一节,改动“LIBRARIES +=”的最后一行,添加opencv_imgcodecs

opencv_core opencv_highgui opencv_imgproc opencv_imgcodecs

 

6: 编译caffe-master!

。!

"-j8"是使用CPU的多核进行编译,能够极大地加速编译的速度,建议使用。

         $ make all -j8

         $ make test -j8

         $ make runtest -j8

建议:在make前。能够用之前的./bandwidthTest等命令測试驱动是否正常!

 

七:使用MNIST数据集进行測试

Caffe默认情况会安装在$CAFFE_ROOT,就是解压到那个文件夹。比如:$ home/username/caffe-master,所以以下的工作。默认已经切换到了该工作文件夹。以下的工作主要是,用于測试Caffe是否工作正常。不做具体评估。

具体设置请參考官网:http://caffe.berkeleyvision.org/gathered/examples/mnist.html

 

1. 数据预处理

$ sudo shdata/mnist/get_mnist.sh

2. 重建lmdb文件。

Caffe支持三种数据格式输入网络,包含Image(.jpg, .png等),leveldb。lmdb。依据自己须要选择不同输入吧。

$sudo shexamples/mnist/create_mnist.sh

生成mnist-train-lmdb 和 mnist-train-lmdb目录,这里包括了lmdb格式的数据集

注:我运行此命令的时候报告说not in gzformat,后来发现是联网下载的mnist数据有问题。然后我就去网上了下载了mnist数据集,后在ubuntu上手动解压的,再运行后面的命令。

 

3. 训练mnist

$ sudo shexamples/mnist/train_lenet.sh

至此,Caffe安装的全部步骤完结,以下是一组简单的数据对照。实验来源于MNIST数据集,主要是考察一下不同系统下CPU和GPU的性能。能够看到明显的区别了。尽管MNIST数据集非常easy,相信复杂得数据集,区别会更大,Ubuntu+GPU是唯一的选择了。

測试平台1i7-4770K/16G/GTX 770/CUDA 6.5

MNIST Windows8.1 on CPU620s

MNIST Windows8.1 on GPU190s

MNIST Ubuntu 14.04 on CPU270s

MNIST Ubuntu 14.04 on GPU160s

MNIST Ubuntu 14.04 on GPUwith cuDNN30s

Cifar10_full on GPUwihtout cuDNN73m45s = 4428s (Iteration 70000

Cifar10_full on GPU withcuDNN20m7s = 1207s (Iteration 70000

 

測试平台2:技嘉P35X v3[email protected]/16G/NVidiaGTX 980 4G

MNIST Ubuntu 15.04 on GPUwith cuDNN33s

 

对照測试12*E5-2620(12CPUs)/128G/Tesla K20M/CUDA5.5/CentOS 6.4

MNIST CentOS 6.4 on GPU294s

对照測试2Tesla K40M/CUDA6.5/ubuntu 14.04

MNIST on GPU with cuDNN30s

对照測试3GTX 660/CUDA6.5/ubuntu 14.04

MNIST on GPU with cuDNN49s

对照试验1是一个不太公平的測试,毕竟性能差非常大,非常可能不单单是由Tesla K20s 和GTX 770带来的。也可能是由于CentOS或者是CUDA5.5(without cuDNN)的影响,但整体上的结论和Caffe官网的 reference performance numbers 一致。对于普通用户:GTX的性价比高非常多。

对照试验2展现了Tesla K40的强大性能,相信对于复杂图像。它应该有更强劲的表现。

(感谢香港城市大学 Ph.D Jingjing、南京理工大学 Ph.D JinLu、华中科技大学 MS LiuMaolin 提供的測试环境和測试数据。)

假设不须要在python和matlab中使用caffe,则不须要安装python和matlab

 

八:python安装

1. 安装IDE执行环境

选择一个适合你的IDE执行环境。我是用的是Spyder,由于它内置了 iPython 环境,Caffe有不少的程序是基于 iPython 环境完毕的。安装方法非常easy,直接在Ubuntu软件中心搜索“spyder”就可以安装。

2. iPython NoteBook 安装

另外一个比較推荐的方法是使用iPyhthon NoteBook(基于浏览器的Python IDE)。特别是适合须要用Python做教程的老师们。能够直接导出.py, .ipynb, html格式。安装过程例如以下:

         $ sudo apt-get install -y ipython-notebook pandoc

启动(自己主动打开浏览器):

         $ ipython nootbook

一个简单的使用iPython NoteBook生成的html的样例:examples_notebook.html example_notebook.ipynb

3: 环境配置

在Makefile.config文件里配置caffe对python接口的支持

PYTHON_INCLUDE := /usr/include/python2.7 \

                   /usr/lib/python2.7/dist-packages/numpy/core/include

PYTHON_LIB := /usr/local/lib

 

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

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

4:在caffe-master文件夹下运行$ make pycaffe -j8编译python

5:在/etc/profile中增加

export PYTHONPATH=/home/hadoop/caffe/caffe-master/python:$PYTHONPATH

这样就能够在python中import caffe了。

九:matlab安装

Matlab安装,我没实用到。也没有安装。如有须要的能够在网上找资料!

 

參考文献:

1:官网 http://caffe.berkeleyvision.org/installation.html

2:https://ouxinyu.github.io/Blogs/20140723001.html欧新宇的博客

3:http://blog.sciencenet.cn/blog-1583812-841855.htmlUbuntu+CUDA6.5+Caffe安装配置汇总

4:http://www.haodaima.net/art/2823705Caffe+Ubuntu14.04+CUDA6.5新手安装配置指南

5:http://weibo.com/p/2304189db078090102vdvx

以上是关于Ubuntu14.10+cuda7.0+caffe配置的主要内容,如果未能解决你的问题,请参考以下文章

Ubuntu14.04安装Caffe(GPU)

Ubuntu 14.04(x64) 安装cuda8.0

Caffe - 激活特征值不一致 - GPU 模式

Ubuntu-安装-cuda7.0-单显卡-超详细教程

Ubuntu 14.04怎样升级到Ubuntu 14.10

Ubuntu 14.10安装手记