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. sudo dpkg -i cuda-repo-ubuntu1404_8.0.61-1_amd64.deb

    更新仓库

    1. sudo apt-get update

    安装cuda和显卡驱动

    1. sudo apt-get install cuda (耗时有点长)

    设置环境变量

    1. export PATH=/usr/local/cuda-6.5/bin:$PATH
    2. export LD_LIBRARY_PATH=/usr/local/cuda-6.5/lib64:$LD_LIBRARY_PATH

    查看显卡驱动版本

    1. cat /proc/driver/nvidia/version  

    查看nvcc编译器的版本和cuda版本

    1. nvcc -V i 
    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,训练。

    成功。

  • 相关阅读:
    5-python基础—获取某个目录下的文件列表(适用于任何系统)
    Automated, Self-Service Provisioning of VMs Using HyperForm (Part 1) (使用HyperForm自动配置虚拟机(第1部分)
    CloudStack Support in Apache libcloud(Apache libcloud中对CloudStack支持)
    Deploying MicroProfile-Based Java Apps to Bluemix(将基于MicroProfile的Java应用程序部署到Bluemix)
    Adding Persistent Storage to Red Hat CDK Kit 3.0 (在Red Hat CDK Kit 3.0添加永久性存储)
    Carve Your Laptop Into VMs Using Vagrant(使用Vagran把您笔记本电脑刻录成虚拟机)
    使用Python生成一张用于登陆验证的字符图片
    Jupyter notebook的安装方法
    Ubuntu16.04使用Anaconda5搭建TensorFlow使用环境 图文详细教程
    不同时区的换算
  • 原文地址:https://www.cnblogs.com/yizhichun/p/6397168.html
Copyright © 2011-2022 走看看