zoukankan      html  css  js  c++  java
  • Ubuntu配置GPU+CUDA+CAFFE

    参考网站:

    http://blog.csdn.net/xizero00/article/details/43227019/ (主要参考)

    http://www.cnblogs.com/platero/p/3993877.html (caffe+cudaGPU)

    http://www.cnblogs.com/platero/p/4118139.html (cuDNN)

    http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1404/x86_64/ (cuda仓库包,要找到对应版本的cuda_repo***)

    http://superuser.com/questions/406507/installing-nvidia-developer-driver-over-ssh-ubuntu-11-10 (nvidia驱动安装问题)

     

     

    Ubuntu配置GPU+CUDA+CAFFE

    1. CUDA的安装与配置

    查看是否有nvidia,以及nvidia型号

    1. lspci | grep -i nvidia  

    VGA compatible controller: NVIDIA Corporation GK106 [GeForce GTX 660] (rev a1) cc3.0

    Audio device: NVIDIA Corporation GK106 HDMI Audio Controller (rev a1)

    http://developer.nvidia.com/cuda-gpus

    在该网站查看是否支持GPU

    查看Nvidia驱动版本

    1. dpkg -l | grep nvidia

    ii nvidia-352 352.99-0ubuntu1 amd64 NVIDIA binary driver - version 352.99

    ii nvidia-352-dev 352.99-0ubuntu1 amd64 NVIDIA binary Xorg driver development files

    ii nvidia-352-uvm 352.99-0ubuntu1 amd64 Transitional package for nvidia-352

    ii nvidia-cuda-dev 6.0.37-4 amd64 NVIDIA CUDA development files

    ii nvidia-cuda-toolkit 6.0.37-4 amd64 NVIDIA CUDA development toolkit

    1. cat /proc/driver/nvidia/version  

    NVRM version: NVIDIA UNIX x86_64 Kernel Module 375.26 Thu Dec 8 18:36:43 PST 2016

    GCC version: gcc version 4.9.1 (Ubuntu 4.9.1-16ubuntu6)

     

    查看linux发行版本

    1. uname -m && cat /etc/*release 

    x86_64

    DISTRIB_ID=Ubuntu

    DISTRIB_RELEASE=15.04

    DISTRIB_CODENAME=vivid

    DISTRIB_DESCRIPTION="Ubuntu 15.04"

    NAME="Ubuntu"

    VERSION="15.04 (Vivid Vervet)"

    ID=ubuntu

    ID_LIKE=debian

    PRETTY_NAME="Ubuntu 15.04"

    VERSION_ID="15.04"

    HOME_URL="http://www.ubuntu.com/"

    SUPPORT_URL="http://help.ubuntu.com/"

    BUG_REPORT_URL=http://bugs.launchpad.net/ubuntu/

    看一下gcc的版本

    1. gcc --version  

    gcc (Ubuntu 4.9.1-16ubuntu6) 4.9.1

    首先下载nvidia cuda的仓库安装包

    http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1404/x86_64/

    1. wget http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1404/x86_64/cuda-repo-ubuntu1404_6.5-14_amd64.deb  

     

    1. caffe编译与运行

    问题1 :hdf5找不到

    CXX examples/siamese/convert_mnist_siamese_data.cpp
    CXX .build_release/src/caffe/proto/caffe.pb.cc
    AR -o .build_release/lib/libcaffe.a
    LD -o .build_release/lib/libcaffe.so.1.0.0-rc3
    /usr/bin/ld: cannot find -lhdf5_hl
    /usr/bin/ld: cannot find -lhdf5
    collect2: error: ld returned 1 exit status
    Makefile:566: recipe for target '.build_release/lib/libcaffe.so.1.0.0-rc3' failed
    make: *** [.build_release/lib/libcaffe.so.1.0.0-rc3] Error 1

    所有的环境准备均按照教程,apt-get正确完成。

    http://www.2cto.com/os/201304/200102.html (cannot find -lxxx错误分析)

    1.系统缺乏对应的库文件;

    2.版本不对应;

    3.库文件的链接错误;

    4.库文件路径设置问题。

     

    分析:路径问题配置问题

    1. locate hdf5

    查找hdf5路径,发现:

     

    /usr/lib/x86_64-linux-gnu/libhdf5_cpp.so

    /usr/lib/x86_64-linux-gnu/libhdf5_hl_cpp.a

    /usr/lib/x86_64-linux-gnu/libhdf5_hl_cpp.so

    /usr/lib/x86_64-linux-gnu/libhdf5_hl_cpp.so.8

    ***

    /usr/lib/x86_64-linux-gnu/hdf5/serial/libhdf5.settings

    /usr/lib/x86_64-linux-gnu/hdf5/serial/libhdf5.so

    /usr/lib/x86_64-linux-gnu/hdf5/serial/libhdf5_cpp.a

    ***

    /usr/lib/x86_64-linux-gnu/hdf5/serial/libhdf5_hl.a

    /usr/lib/x86_64-linux-gnu/hdf5/serial/libhdf5_hl.so

    /usr/lib/x86_64-linux-gnu/hdf5/serial/libhdf5_hl_cpp.a

    /usr/lib/x86_64-linux-gnu是ubuntu下64位库的存放位置,

    在redhat下是/usr/lib64

    而我们所安装的hdf5却在子文件夹下/usr/lib/x86_64-linux-gnu/hdf5/serial,因此,要将这两个路径加入到Makefile.config中。

    解决。

    另:ubuntu系统环境变量保存在/etc/ld.so.conf.d目录下,其中,该目录下x86_64-linux-gnu.conf可以认为是64lib的环境变量,可以将上述两个路径加入到其中。

    问题2:GPU不能用

    Check failed: error == cudaSuccess (35 vs. 0) CUDA driver version is insufficient for CUDA runtime version

     

    查看驱动程序版本

    1. dpkg -l | grep nvidia
    2. cat /proc/driver/nvidia/version 

    查看cuda版本

    1. dpkg –l | grep cuda

    下载新的驱动程序

    1. wget http://us.download.nvidia.com/XFree86/Linux-x86_64/375.26/NVIDIA-Linux-x86_64-375.26.run

    安装

    http://www.linuxidc.com/Linux/2015-09/123563.htm

    接下来,为NVIDIA**.run驱动程序添加可执行权限:

    1. sudo chmod +x NVIDIA**.run

    关闭X-Window,很简单:

    1. sudo service lightdm stop
    2. sudo ./NVIDIA.run

    开始安装,安装过程比较快,根据提示选择即可

    最后安装完毕后,重新启动X-Window:

    1. sudo service lightdm start

    可能是由于cuda版本过高,不兼容,//不需要,只需将nvidia驱动版本升级到最新。

    重新安装cuda6.5 //不需要,只需将nvidia驱动版本升级到最新。

    卸载cuda 7.5,如果使用deb安装的话

    1. sudo dpkg --purge cuda-repo-ubuntu14 //包名,删除安装文件和配置文件
    2. sudo apt-get purge cuda-7.5
    3. sudo apt-get autoremove
    4.  

    另:dpkg –remove只是删除安装文件,但不删除配置文件

    重新安装cuda6.5 //不需要,只需将nvidia驱动版本升级到最新。

    1. cd ~/Downloads
    2. sudo dpkg -i cuda-repo-ubuntu1404_6.5-19_amd64.deb
    3. sudo apt-get update 
    4. sudo apt-get install cuda  
    5. vi ~/.bashrc

    修改路径

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

    export LD_LIBRYRY_PATH=/usr/local/cuda/lib64:$LD_LIBRYRY_PATH

     

     

     

     nvidia-smi才是监视GPU

    思路,错误说是,cuda-drivercuda-runtime版本冲突,

    现在显卡驱动版本升级到了最新,如果用cuda6.5似乎不行。

    可以先试一下,若提示显卡驱动有问题,可以重新安装 cuda7.5

    7.5仍有问题,要重新回滚显卡驱动,试一下,然后重装6.5

    问题3:GPU不能用

    I1216 18:51:10.960827 17292 layer_factory.hpp:77] Creating layer mnist

    F1216 18:51:10.967443 17292 internal_thread.cpp:26] Check failed: error == cudaSuccess (30 vs. 0) unknown error

    该问题是cuda的问题,cudanvidia显卡版本不兼容,要将显卡版本升级到最新。

    安装最新版显卡驱动nvidia-driver-375.29

    安装前,执行

    1. Dpkg –l | grep nvidia

    出现多个352版本nvidia,这是出现问题的根本原因。

    安装,提示有nvidia的进程在运行

    1. lsmod | grep nvidia

    可以显示后台进程中nvidia的进程

    1. Kill PID

    将进程杀死。

    再次运行安装程序

    1. sudo chmod +x NVIDIA*.run
    2. sudo ./NVIDIA*.run

    按提示进行。

    提示,有旧版本module仍然在系统中,要手动进行卸载,nvidia-352等等。

    1. Sudo apt-get remove –purge nvidia-352 nvidia-modprobe nvidia-settings

    卸载完成后,再次运行安装程序,顺利安装。

    在此编译caffe,训练。

    成功。

  • 相关阅读:
    Linux 用C语言实现简单的shell(1)
    线性回归 Linear regression(4) 局部加权回归
    线性回归 Linear regression(3) 线性回归的概率解释
    线性回归 Linear regression(2)线性回归梯度下降中学习率的讨论
    线性回归 Linear regression(1)线性回归的基本算法与求解
    超多JavaASP.NETPHPoracleandroidiphoneVC++项目实战视频教程免费下载
    struct 和 typedef struct
    soj1200- 简单的等式 (素数打表,找因子)
    soj1209- 最短的距离(精度问题)
    快排
  • 原文地址:https://www.cnblogs.com/yizhichun/p/6339781.html
Copyright © 2011-2022 走看看