Caffe + Ubuntu 14.04 64bit + CUDA 6.5 配置说明

本文安装显卡驱动的方式已通过时, 最新安装说明请参考发布在Gist上的这篇文章若有任何疑问,仍然欢迎在本文下留言 :Phtml

(本文档使用同一块NVIDIA显卡进行显示与计算, 如分别使用不一样的显卡进行显示和计算,则可能不适用。)python

1. 安装build-essentials

安装开发所须要的一些基本包linux

sudo apt-get install build-essential

2. 安装NVIDIA驱动 (3.4.0)

2.1 准备工做(2014-12-03更新

在关闭桌面管理 lightdm 的状况下安装驱动彷佛能够实现Intel 核芯显卡 来显示 + NVIDIA 显卡来计算。具体步骤以下:git

1. 首先在BIOS设置里选择用Intel显卡来显示或做为主要显示设备github

2. 进入Ubuntu, 按 ctrl+alt+F1 进入tty, 登陆tty后输入以下命令shell

sudo service lightdm stop

该命令会关闭lightdm。若是你使用 gdm或者其余的desktop manager, 请在安装NVIDIA驱动前关闭他。bash

2.2 安装驱动

输入下列命令添加驱动源app

sudo add-apt-repository ppa:xorg-edgers/ppa
sudo apt-get update

安装340版驱动 (CUDA 6.5.14目前最高仅支持340版驱动, 343, 346版驱动暂不支持)eclipse

sudo apt-get install nvidia-340

安装完成后, 继续安装下列包 (不然在运行sample时会报错)post

sudo apt-get install nvidia-340-uvm

安装完成后 reboot.

3. 安装CUDA 6.5

点击此连接】 下载CUDA 6.5. 

而后经过下列命令, 将下载获得的.run文件解压成三个文件, 分别为

  • CUDA安装包: cuda-linux64-rel-6.5.14-18749181.run
  • NVIDIA驱动: NVIDIA-Linux-x86_64-340.29.run
  • SAMPLE包: cuda-samples-linux-6.5.14-18745345.run

这里不安装NVIDIA驱动

cuda6.5.run --extract=extract_path

注意, 须要经过下面命令给全部.run文件可执行权限

chmod +x *.run

 

3.1 安装CUDA

经过下列命令安装CUDA, 按照说明一步一步安装至完成.

sudo ./cuda-linux64-rel-6.5.14-18749181.run

3.1.1 添加环境变量

安装完成后须要在/etc/profile中添加环境变量, 在文件最后添加:

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

保存后, 执行下列命令, 使环境变量当即生效

source /etc/profile

3.1.2 添加lib库路径

/etc/ld.so.conf.d/加入文件 cuda.conf, 内容以下

/usr/local/cuda-6.5/lib64

执行下列命令使之马上生效

sudo ldconfig

 

3.2 安装CUDA SAMPLE

首先安装下列依赖包

sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libglu1-mesa-dev

而后用下述命令安装sample文件

sudo ./cuda-samples-linux-6.5.14-18745345.run

完成后编译Sample文件, 整个过程大概10分钟左右

cd /usr/local/cuda-6.5/samples
sudo make

 所有编译完成后, 进入 samples/bin/x86_64/linux/release, sudo下运行deviceQuery

sudo ./deviceQuery

若是出现下列显卡信息, 则驱动及显卡安装成功:

./deviceQuery Starting...

 CUDA Device Query (Runtime API) version (CUDART static linking)

Detected 1 CUDA Capable device(s)

Device 0: "GeForce GTX 670"
  CUDA Driver Version / Runtime Version          6.5 / 6.5
  CUDA Capability Major/Minor version number:    3.0
  Total amount of global memory:                 4095 MBytes (4294246400 bytes)
  ( 7) Multiprocessors, (192) CUDA Cores/MP:     1344 CUDA Cores
  GPU Clock rate:                                1098 MHz (1.10 GHz)
  Memory Clock rate:                             3105 Mhz
  Memory Bus Width:                              256-bit
  L2 Cache Size:                                 524288 bytes
  Maximum Texture Dimension Size (x,y,z)         1D=(65536), 2D=(65536, 65536), 3D=(4096, 4096, 4096)
  Maximum Layered 1D Texture Size, (num) layers  1D=(16384), 2048 layers
  Maximum Layered 2D Texture Size, (num) layers  2D=(16384, 16384), 2048 layers
  Total amount of constant memory:               65536 bytes
  Total amount of shared memory per block:       49152 bytes
  Total number of registers available per block: 65536
  Warp size:                                     32
  Maximum number of threads per multiprocessor:  2048
  Maximum number of threads per block:           1024
  Max dimension size of a thread block (x,y,z): (1024, 1024, 64)
  Max dimension size of a grid size    (x,y,z): (2147483647, 65535, 65535)
  Maximum memory pitch:                          2147483647 bytes
  Texture alignment:                             512 bytes
  Concurrent copy and kernel execution:          Yes with 1 copy engine(s)
  Run time limit on kernels:                     Yes
  Integrated GPU sharing Host Memory:            No
  Support host page-locked memory mapping:       Yes
  Alignment requirement for Surfaces:            Yes
  Device has ECC support:                        Disabled
  Device supports Unified Addressing (UVA):      Yes
  Device PCI Bus ID / PCI location ID:           1 / 0
  Compute Mode:
     < Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) >

deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 6.5, CUDA Runtime Version = 6.5, NumDevs = 1, Device0 = GeForce GTX 670
Result = PASS

 4. 安装Intel MKL 

(若是没有能够安装OpenBLAS代替)解压安装包,下面有一个install_GUI.sh文件, 执行该文件,会出现图形安装界面,根听说明一步一步执行便可。

注意: 安装完成后须要添加library路径

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

在文件中添加内容

/opt/intel/lib
/opt/intel/mkl/lib/intel64

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

sudo ldconfig

 

5. 安装OpenCV

这个尽可能不要手动安装, Github上有人已经写好了完整的安装脚本:https://github.com/jayrambhia/Install-OpenCV

下载该脚本,进入Ubuntu/2.4 目录, 给全部shell脚本加上可执行权限

chmod +x *.sh

而后安装最新版本 (当前为2.4.9)

sudo ./opencv2_4_9.sh

脚本会自动安装依赖项,下载安装包,编译并安装OpenCV。整个过程大概半小时左右。 

注意,中途可能会报错

opencv-2.4.9/modules/gpu/src/nvidia/core/NCVPixelOperations.hpp(51): error: a storage class is not allowed in an explicit specialization

解决方法在此:http://code.opencv.org/issues/3814  下载 NCVPixelOperations.hpp 替换掉opencv2.4.9内的文件, 从新build。

6. 安装其余依赖项

Ubuntu14.04用户执行

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

其余版本用户参考官方说明:http://caffe.berkeleyvision.org/installation.html

7. 安装Caffe所须要的Python环境

首先安装pip和python-dev (系统默认有python环境的, 不过咱们须要的使python-dev)

sudo apt-get install python-dev python-pip

而后执行以下命令安装编译caffe python wrapper 所须要的额外包

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

在执行上述命令时, 会报错致使不能彻底安装全部须要的包。 能够按照官方建议安装anaconda包。 在anaconda官网下载.sh文件,执行,最后添加bin目录到环境变量便可。

2014-12-03更新

建议安装Anaconda包,这个包能独立于系统自带的python库,而且提供大部分Caffe须要的科学运算Python库。这里须要注意,在运行Caffe时,可能会报一些找不到libxxx.so的错误,而用 locate libxxx.so命令发现已经安装在anaconda中,这时首先想到的是在/etc/ld.so.conf.d/ 下面将 $your_anaconda_path/lib 加入 LD_LIBRARY_PATH中。 可是这样作可能致使登出后没法再进入桌面!!!缘由(猜想)多是anaconda的lib中有些内容于系统自带的lib产生冲突。

正确的作法是:为了避免让系统在启动时就将anaconda/lib加入系统库目录,能够在用户本身的~/.bashrc 中添加library path, 好比我就在最后添加了两行

 

# add library path
LD_LIBRARY_PATH=your_anaconda_path/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH

开启另外一个终端后即生效,而且重启后可以顺利加载lightdm, 进入桌面环境。

8. 安装MATLAB

Caffe提供了MATLAB接口, 有须要用MATLAB的同窗能够额外安装MATLAB。 安装教程请自行搜索。 

安装完成后添加图标 http://www.linuxidc.com/Linux/2011-01/31632.htm

sudo vi /usr/share/applications/Matlab.desktop

输入如下内容

[Desktop Entry]
Type=Application
Name=Matlab
GenericName=Matlab 2010b
Comment=Matlab:The Language of Technical Computing
Exec=sh /usr/local/MATLAB/R2010b/bin/matlab -desktop
Icon=/usr/local/MATLAB/Matlab.png
Terminal=false
Categories=Development;Matlab;

 

(I use the R2013b patched package. First you should uncompress the .iso file. Then use sudo cp to copy the patch file)

9. 编译Caffe

终于完成了全部环境的配置,能够愉快的编译Caffe了! 进入caffe根目录, 首先复制一份Makefile.config

cp Makefile.config.example Makefile.config

而后修改里面的内容,主要须要修改的参数包括

CPU_ONLY 是否只使用CPU模式,没有GPU没安装CUDA的同窗能够打开这个选项

BLAS (使用intel mkl仍是OpenBLAS)

MATLAB_DIR 若是须要使用MATLAB wrapper的同窗须要指定matlab的安装路径, 如个人路径为 /usr/local/MATLAB/R2013b (注意该目录下须要包含bin文件夹,bin文件夹里应该包含mex二进制程序)

DEBUG 是否使用debug模式,打开此选项则能够在eclipse或者NSight中debug程序

完成设置后, 开始编译

make all -j4
make test
make runtest

注意 -j4 是指使用几个线程来同时编译, 能够加快速度, j后面的数字能够根据CPU core的个数来决定, 个人CPU使4核, 因此-j4.

而后去尿个尿,喝杯茶, 回来就差很少编译好了..

9.1. 编译Matlab wrapper

执行以下命令

make matcaffe

而后就能够跑官方的matlab demo啦。

9.2. 编译Python wrapper

 make pycaffe 

而后基本就所有安装完拉.

接下来你们尽情地跑demo吧~

----------------------------------

10. 安装cuDNN

为了加速Caffe,能够安装cuDNN,参见这篇文章:NVIDIA CuDNN 安装说明 

相关文章
相关标签/搜索