• Ubuntu14.10+cuda7.0+caffe配置


    转自:http://blog.csdn.net/lu597203933/article/details/46742199

    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. 切换目录Ubuntu3.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数据集很简单,相信复杂得数据集,差别会更大,Ubuntu+GPU是唯一的选择了。

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

    MNIST Windows8.1 on CPU:620s

    MNIST Windows8.1 on GPU:190s

    MNIST Ubuntu 14.04 on CPU:270s

    MNIST Ubuntu 14.04 on GPU:160s

    MNIST Ubuntu 14.04 on GPUwith cuDNN:30s

    Cifar10_full on GPUwihtout cuDNN:73m45s = 4428s (Iteration 70000)

    Cifar10_full on GPU withcuDNN:20m7s = 1207s (Iteration 70000)

    测试平台2:技嘉P35X v3,i7-4720HQ@2.6G/16G/NVidiaGTX 980 4G

    MNIST Ubuntu 15.04 on GPUwith cuDNN:33s

    对比测试1:2*E5-2620(12CPUs)/128G/Tesla K20M/CUDA5.5/CentOS 6.4

    MNIST CentOS 6.4 on GPU:294s

    对比测试2:Tesla K40M/CUDA6.5/ubuntu 14.04

    MNIST on GPU with cuDNN:30s

    对比测试3:GTX 660/CUDA6.5/ubuntu 14.04

    MNIST on GPU with cuDNN:49s

    对比试验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 环境完成的。安装方法很简单,直接在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

  • 相关阅读:
    第四周编程总结
    第三周作业编程总结
    第二周基础作业
    【C++学习教程03】面向对象编程的基本知识&内联函数
    【C++学习教程02】运算符
    【C++学习教程01】C++命名空间重名&函数原型&字符类型&数据类型
    为什么匿名内部类只能访问其所在方法中的final变量
    android通过socket上传文件
    android socket编程
    test markdown-here chrome 插件
  • 原文地址:https://www.cnblogs.com/fclbky/p/5231543.html
Copyright © 2020-2023  润新知