• ubuntu14.04 caffe


    1.显卡驱动

    ubuntu nvidia 940m

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

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

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

    sudo apt-get update

    sudo apt-get install nvidia-358

    reboot

    2.安装CUDA 6.5

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

    添加环境变量

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

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

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

    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 安装说明




























  • 相关阅读:
    关于post和get的区别
    修改ubuntu系统时区
    修改 Ubuntu 下 Mysql 编码
    C++程序设计实践指导1.10二维数组元素换位改写要求实现
    C++程序设计实践指导1.7超长数列中n个数排序改写要求实现
    C++程序设计实践指导1.15找出回文数改写要求实现
    C++程序设计实践指导1.14字符串交叉插入改写要求实现
    C++程序设计实践指导1.13自然数集中找合数改写要求实现
    C++程序设计实践指导1.12数组中数据线性变换改写要求实现
    C++程序设计实践指导1.9统计与替换字符串中的关键字改写要求实现
  • 原文地址:https://www.cnblogs.com/wjgaas/p/4556313.html
Copyright © 2020-2023  润新知