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,訓練。

成功。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM