ubuntu14.04 caffe

 

1.显卡驱动

ubuntu nvidia 940mhtml

使用sudo ubuntu-drivers devices 查看推荐的驱动版本python

//sudo add-apt-repository ppa:mamarley/nvidia(已不能用了)linux

ppa已改成:sudo add-apt-repository ppa:graphics-drivers/ppagit

sudo apt-get updategithub

sudo apt-get install nvidia-358shell

rebootubuntu

 

2.安装CUDA 6.5

 

chmod +x *.run
cuda6.5.run --extract=extract_path
sudo ./cuda-linux64-rel-6.5.14-18749181.run

添加环境变量

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

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

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

source /etc/profile

3.1.2 添加lib库路径框架

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

/usr/local/cuda-6.5/lib64

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

sudo ldconfig
 

NVIDIA CuDNN 安装说明

CuDNN是专门针对Deep Learning框架设计的一套GPU计算加速方案,目前支持的DL库包括Caffe,ConvNet, Torch7等。

CuDNN能够在官网免费得到,注册账号后便可下载。官网没有找到安装说明,下载获得的压缩包内也没有Readme. 不过google一下就会找到许多说明。基本原理是把lib文件加入到系统能找到的lib文件夹里, 把头文件加到系统能找到的include文件夹里就能够。这里把他们加到CUDA的文件夹下(参考这里

tar -xzvf cudnn-6.5-linux-R1.tgz cd cudnn-6.5-linux-R1 sudo cp lib* /usr/local/cuda/lib64/ sudo cp cudnn.h /usr/local/cuda/include/

执行后发现仍是找不到库, 报错

error while loading shared libraries: libcudnn.so.6.5: cannot open shared object file: No such file or directory

而lib文件夹是在系统路径里的,用ls -al发现是文件权限的问题,所以用下述命令先删除软链接

cd /usr/local/cuda/lib64/
sudo rm -rf libcudnn.so libcudnn.so.6.5

而后修改文件权限,并建立新的软链接

sudo chmod u=rwx,g=rx,o=rx libcudnn.so.6.5.18 sudo ln -s libcudnn.so.6.5.18 libcudnn.so.6.5 sudo ln -s libcudnn.so.6.5 libcudnn.so

 

 

 

3.安装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

 会出现错误:

"/usr/local/cuda-6.5"/bin/nvcc -ccbin g++ -I../../common/inc  -m64     -gencode arch=compute_11,code=compute_11 -o cudaProcessFrame.o -c cudaProcessFrame.cpp
nvcc warning : The 'compute_11', 'compute_12', 'compute_13', 'sm_11', 'sm_12', and 'sm_13' architectures are deprecated, and may be removed in a future release.
"/usr/local/cuda-6.5"/bin/nvcc -ccbin g++ -I../../common/inc  -m64     -gencode arch=compute_11,code=compute_11 -o videoDecodeGL.o -c videoDecodeGL.cpp
nvcc warning : The 'compute_11', 'compute_12', 'compute_13', 'sm_11', 'sm_12', and 'sm_13' architectures are deprecated, and may be removed in a future release.
"/usr/local/cuda-6.5"/bin/nvcc -ccbin g++   -m64       -gencode arch=compute_11,code=compute_11 -o cudaDecodeGL FrameQueue.o ImageGL.o VideoDecoder.o VideoParser.o VideoSource.o cudaModuleMgr.o cudaProcessFrame.o videoDecodeGL.o  -L../../common/lib/linux/x86_64 -L/usr/lib/"nvidia-340" -lGL -lGLU -lX11 -lXi -lXmu -lglut -lGLEW -lcuda -lcudart -lnvcuvid
nvcc warning : The 'compute_11', 'compute_12', 'compute_13', 'sm_11', 'sm_12', and 'sm_13' architectures are deprecated, and may be removed in a future release.
/usr/bin/ld: cannot find -lnvcuvid
collect2: error: ld returned 1 exit status
make[1]: *** [cudaDecodeGL] 错误 1
由于咱们用的是nvidia-358.

cd /usr/local/cuda-6.5/samples

grep "nvidia-340" -r ./

将 UBUNTU_PKG_NAME = "nvidia-340" 换成UBUNTU_PKG_NAME = "nvidia-358"

 
sudo sed -i "s/nvidia-340/nvidia-358/g" `grep nvidia-340 -rl .`

 接着make

 貌似要开启nvidia才能编译过

 

所有编译完成后, 进入 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

 

OpenCV LIBTIFF_4.0 link errors

之前用Caffe用的好好的,今天重装后竟然报了不少这样的错误

/usr/lib/libopencv_highgui.so.2.4: undefined reference to TIFFRGBAImageOK@LIBTIFF_4.0' 1> /usr/lib/libopencv_highgui.so.2.4: undefined reference toTIFFReadRGBAStrip@LIBTIFF_4.0'

貌似libtiff4-dev也是装了的。重装opencv也没用,最后在这里找到了解决方案:

http://answers.opencv.org/question/35642/libtiff_40-link-errors/

解决方法是在cmake时加入下面参数

-D BUILD_TIFF=ON

而后安装最新版本 (当前为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 安装说明

相关文章
相关标签/搜索