Ubuntu 14.04 LTS, 64bit, cuda 7, Caffe环境配置编译和安装

1 GPU设备

1.1 本人使用的GPU设备

名称: 七彩虹GTX980Ti显卡iGame980Ti烈焰战神X 6G


Ubuntu 14.04 LTS, 64bit, cuda 7, Caffe环境配置编译和安装_第1张图片

1.2 硬件问题

Laboratory Tested Hardware:

     Berkeley Vision runs Caffe with K40s, K20s, and Titans including models at ImageNet/ILSVRC scale. We also run on GTX series cards and GPU-equipped MacBook Pros. We have not encountered any trouble in-house with devices with CUDA capability >= 3.0. All reported hardware issues thus-far have been due to GPU configuration, overheating, and the like.

CUDA compute capability:

     如果设备的运算能力 <= 2.0, 受限于设备的性能, 可能需要减少 CUDA的线程数量 和 批处理的 大小(sizes). 你的吞吐量可能会发生变化.


安装后, 参照我们的 reference performance numbers 确保所有的配置是正确的.

工程问题请参照  hardware/compatibility.


2 GPU驱动和GPU开发工具安装

 基于cuda_7.0.28_linux.run安装

 下载地址:  cuda_7.0.28_linux.run

   其他各版本(含老版本和最新版本)的文档地址:http://blog.csdn.net/real_myth/article/details/52724892


3 Caffe

基于原版翻译的教程参见: Caffe编译安装

3.1 编译工具(如果开发环境已经具备不需要此步骤)

1) gcc, g++ (安装命令: sudo apt-get install build-essential )

2) make(安装命令:sudo apt-get install make )

3) cmake(安装命令:sudo apt-get install cmake)

 

注意,在  Ubuntu 12.04中, 默认安装的CMake版本为2.8.7, 不能满足编译Caffe的CMake 版本需求 (版本至少为 2.8.8) ,如果你使用的系统是Ubuntu 12.04,可以尝试下面的安装步骤安装CMake 2.8.9或者升级到这个版本 :

sudo add-apt-repository ppa:ubuntu-sdk-team/ppa -y
sudo apt-get -y update
sudo apt-get install cmake


3.2 先决依赖条件(Prerequisites)

Caffe 依赖于很多的软件包。

  • CUDA

       Caffe 需要 CUDA nvcc 编译器来编译GPU 代码 ,需要CUDA驱动来操作GPU. 要安装 CUDA, 请参照NVIDIA CUDA 网站和网站上的安装说明.分别安装依赖库和最新的驱动;

       和依赖库绑定的驱动通常版本比较老.警告 331.* CUDA 系列驱动有严重的性能问题: 不要使用.

        为了达到最好的性能, Caffe 可以通过NVIDIA cuDNN加速.  cuDNN 网站注册是免费的, 安装完后继续下面的安装说明.

         要使用cuDNN编译请在你的Makefile.config种设置USE_CUDNN := 1 .(个人用的是cuDNN V4)

        cudnn下载地址: 下载(http://blog.csdn.net/real_myth/article/details/52739801)

  本文安装方式

      由于cuda_7.0.28_linux.run安装需要编译内核,所以对于安装了桌面环境的ubuntu 需要结束桌面环境,在终端环境下操作。

      桌面环境转到终端环境

  1)按ALT+CTRL+F1、F2、F3、F4、F5、F6、F7可来回切换7个界面(Linux实体机)其中ALT+CTRL+F7可切换到图形界面(Linux实体机)如果是VMware虚拟机安装的Linux系统,则切换到图形界面的时候需要以下操作按下ALT+CTRL+SPACE(空格),ALT+CTRL不松开,再按F7。这样就可以切换到图形界面了。

  2) 如果想Ubuntu在每次启动到commandprompt(默认字符界面),可以输入以下指令:echo“false”|sudotee/etc/X11/default-display-manager(注意:上述命令的作用是将default-display-manager文件中的内容改为"false",在执行该命令之前最好先备份一下)当下次开机时,就会以命令行模式启动(字符界面登录)。如果想变回图形界面启动(Xwindows启动),可以输入:echo“/usr/sbin/gdm”|sudotee/etc/X11/default-display-manager(注意:其中“/usr/sbin/gdm”是原先default-display-manager文件中的内容,并不是所有linux版本都是“/usr/sbin/gdm”,ubuntu12.04的是"/usr/sbin/lightdm"因此,在修改default-display-manager文件的内容之前,最好先备份一下,以免忘记里面的内容。)

 3)如果在Ubuntu以命令行模式启动,在字符终端想回到图形界面的话只需以下命令:startx

  

      停止和启动桌面环境:

  service lightdm stop & service lightdm start

  安装:

  转到cuda_7.0.28_linux.run所在的目录,以root权限运行此文件,并按照提示选择相应的安装工具和目录即可。

  我都是默认路径全部安装的


  • BLAS (通过 ATLAS, MKL,或 OpenBLAS提供)

     Caffe 需要 BLAS作为矩阵和向量计算的后端( backend).有很多这个库的移植版本.可以自己根据情况选择: 

          ATLAS:

                    免费,开源代码,Caffe的默认依赖

                    sudo apt-get install libatlas-base-dev
    Intel MKL:

        商业版并且针对Intel的CPU做了优化, 可以免费试用,并且有学生版本.
        安装 MKL.
        在Makefile.config文件中设置 BLAS := mkl

    OpenBLAS:

     免费的并且开源; 优化的可并行的 BLAS, 虽然安装需要花点时间,但是确实可以提速 .
        安装 OpenBLAS
        在Makefile.config文件中设置 BLAS := open

  • OpenCV.

       sudo apt-get install libopencv-calib3d-dev libopencv-contrib-dev libopencv-core-dev libopencv-dev libopencv-features2d-dev libopencv-flann-dev libopencv-gpu-dev libopencv-highgui-dev libopencv-imgproc-dev libopencv-legacy-dev libopencv-ml-dev libopencv-objdetect-dev libopencv-ocl-dev libopencv-photo-dev libopencv-stitching-dev libopencv-superres-dev libopencv-ts-dev libopencv-video-dev libopencv-videostab-dev

     或者

  sudo apt-get install libopencv-dev

  • Boost (>= 1.55,  只有1.55和1.56测试过)

      sudo apt-get install libboost-all-dev

  • protobuf,leveldb,snappy,hdf5, glog,gflags,lmdb
           sudo apt-get install libprotobuf-dev protobuf-compiler libleveldb-dev libsnappy-dev libhdf5-serial-dev
           sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev


Ubuntu系统,  万一在你的系统源里找不到上面说的这些扩展库, 下面的命令教你如何手工编译安装 (安装的时候可能需要root权限)

# glog
wget https://google-glog.googlecode.com/files/glog-0.3.3.tar.gz
tar zxvf glog-0.3.3.tar.gz
cd glog-0.3.3
./configure
make && make install

 # gflags
wget https://github.com/schuhschuh/gflags/archive/master.zip
unzip master.zip
cd gflags-master
mkdir build && cd build
export CXXFLAGS="-fPIC" && cmake .. && make VERBOSE=1
make && make install

 # lmdb
git clone git://gitorious.org/mdb/mdb.git
cd mdb/libraries/liblmdb
make && make install

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.


  • Python

           python 2.7, numpy (>= 1.7), boost-providedboost.python

      主要的依赖为 numpyboost.Python (通过 boost提供).pandas 也是有用的并且是一些例子的依赖。

      可以通过以下命令安装依赖:

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

      强烈推荐首先安装提供了大部分需要的的依赖包和hdf5依赖库的 Anaconda Python distribution。

      ubuntu: sudo apt-get install python python-dev

       安装完成后,如果要导入 caffe的Python模块,需要通过 export PYTHONPATH=/path/to/caffe/python:$PYTHONPATH

       或者类似的方法添加模块路径到你的环境变量$PYTHONPATH .不可以在caffe/python/caffe路径中导入!

      Caffe’的 Python 接口支持 Python 2.7. Python 3 或者更早的 Pythons.


  • MATLAB(可选),有mex编译器的MATLAB       

        安装MATLAB, 确保Matalab的 mex在你的环境变量 $PATH中.

        Caffe的 MATLAB接口兼容于版本 2012b, 2013a/b, 和 2014a.


3.3 运行模式设置

cuDNN Caffe: Caffe通过drop-in integration of NVIDIA cuDNN的加速方式来达到最快的执行速度。

要加速你的Caffe模型, 请安装 cuDNN 然后在Makefile.config 文件中解注释USE_CUDNN := 1,这样安装Caffe后,就会自动加速.


CPU-only Caffe:  对于cold-brewed 只有CPU模式的Caffe,请在文件Makefile.config中,解注释CPU_ONLY := 1,然后以无CUDA的方式编译Caffe.这有助于云和集群方式的部署。


3.4 编译 & 安装

3.4.1 直接使用已有的Makefile

现在已经具备了所有的依赖条件, 编辑你的配置文件 Makefile.config,改变你的安装路径 (you should especially uncomment and setBLAS_LIB accordingly on distributions likeCentOS / RHEL / Fedora where ATLAS is installed under/usr/lib[64]/atlas),默认的配置是可以的,但是如果你使用的是Anaconda Python,请解注释相关的行。

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

编译的时候如果要引入cuDNN加速,你需要在文件Makefile.config中解注释USE_CUDNN := 1。

如果你的电脑上没有 GPU,你应该使用CPU-only模式的Caffe,请在文件Makefile.config中解注释CPU_ONLY := 1 。

要编译 Python 和 MATLAB 包,请独立的执行make pycaffe和make matcaffe . 请务必首先在Makefile.config中配置你的MATLAB 和 Python路径!

Distribution: 运行 make distribute来创建一个包含所有的Caffe 头文件, 编译好的依赖库,二进制文件等的分布式路径,用于其他机器的配置.

Speed: 如果要快速的编译,请通过make all -j8的方式并行编译,其中8是并行编译的线程的数量(并行线程的数量最好等于你机器CPU核的数量).

到目前为止,你已经安装了Caffe, 请参照 MNIST tutorial 和 reference ImageNet model tutorial进行进一步的操作.

3.4.2 使用CMake (beta)编译

通过手工编辑Makefile.config的方式告诉 Caffe 寻找依赖的的位置, Caffe 也提供了一个基于 CMake的编译系统 (currently in “beta”).要求CMake 版本 >= 2.8.8. 基本的安装步骤如下:

mkdir build
cd build
cmake ..
make all
make runtest



        

你可能感兴趣的:(Ubuntu 14.04 LTS, 64bit, cuda 7, Caffe环境配置编译和安装)