Centos 6.5 install caffe+Nvidia driver+cuda 6.5

來源:互聯網
上載者:User

標籤:

Centos 6.5安裝caffe全紀錄

前不久,在一台新機器上安裝了caffe,用於深度學習。其實本人小白一個,在安裝caffe的過程中走了很多彎路。在遇到問題時,還好有**google**,可以得帶、哦一些解答。但是悲劇的是,有一些問題還真是搜不到答案。比如:

NVCC src/caffe/layers/relu_layer.cusrc/caffe/layers/prelu_layer.cu(58): error: a host function call cannot be configureddetected during instantiation of "void caffe::PReLULayer::Forward_gpu(const std::vectorcaffe::Blob<Dtype *, std::allocatorcaffe::Blob<Dtype *>> &, const std::vectorcaffe::Blob<Dtype *, std::allocatorcaffe::Blob<Dtype *>> &) [with Dtype=float]" (127): here

當時google一下這個報錯,竟然有人和我遇到了同樣的錯誤。簡直開心得不行不行的,但這並沒有什麼卵用,因為沒有人解答。 當然後來我解決了這個問題,因為之前大部分caffe所依賴的庫都是我手動編譯的,很有可能問題出在這點上。但具體為什麼會有這樣的問題我也不太清楚,其中涉及到各個庫的版本相容問題,不行,頭疼。望大神指點。

說了這麼多廢話,也該開始步入正題了。安裝caffe可以分成兩步走。

  • 安裝CPU only caffe
  • 再安裝GPU加速 caffe

這樣方便我們在出現錯誤時能夠快速定位問題,解決問題。

1. 安裝CPU only caffe

在寫這一小節前有必要,交代一下linux系統的基本資料。


$ lsb_release -aLSB Version::base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarchDistributor ID:CentOSDescription:CentOS release 6.5 (Final)Release:6.5Codename:Final$ uname -r2.6.32-431.el6.x86_64

安裝caffe的大蝦們,肯定已經閱讀過 RHEL / Fedora / CentOS Installation章節。

1.1 基本庫安裝
  • 基本開發工具

    sudo yum -y groupinstall "Development Tools"
  • 添加**EPEL repositories**

sudo rpm -Uvh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

然後就可以愉快的安裝庫了。

sudo yum install protobuf-devel leveldb-devel snappy-devel hdf5-devel

  • 安裝**boost-devel**

rpm -qa boost 查看CentOS是否已有boost, 如果有會顯示版本,我的內建版本是1.44.1, 版本太低,


$ wget -O boost_1_55_0.tar.bz2 http://downloads.sourceforge.net/project/boost/boost/1.55.0/boost_1_55_0.tar.bz2?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fboost%2Ffiles%2Fboost%2F1.55.0%2F&ts=1385953406&use_mirror=softlayer-ams$ tar jxvf boost_1_55_0.tar.bz2$ cd boost_1_55_0$ ./bootstrap.sh$ ./b2$ sudo ./b2 install

- 安裝**opencv-devel**

$ sudo yum -y install cmake pkgconfig gtk2-devel python-devel numpy tbb-devel libpng-devel$ wget http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/2.4.10/opencv-2.4.10.zip$ unzip opencv-2.4.10.zip$ cd opencv-2.4.10$ mkdir build$ cd build$ cmake ../ -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_INSTALL_PREFIX=/usr/local -DBUILD_EXAMPLES=ON -DBUILD_NEW_PYTHON_SUPPORT=ON -DINSTALL_PYTHON_EXAMPLES=ON$ make -j 2$ sudo make install

1.2 os的依賴

上來就敲下面的命令
sudo yum install gflags-devel glog-devel lmdb-devel,發現glog-devel找不到。這個時候只能上Github上下一個glog.zip。

$ unzip glog-master.zip$ cd glog-master$ ./configure$ make -j4$ sudo make install
1.3 BLAS

sudo yum install atlas-devel

1.4 編譯
$ cp Makefile.config.example Makefile.config# Adjust Makefile.config (for example, if using Anaconda Python)$ make all$ make test$ make runtest
  • For cuDNN acceleration, you should uncomment the USE_CUDNN := 1 switch in Makefile.config.
  • For CPU-only Caffe, uncomment CPU_ONLY := 1 in Makefile.config.

若無意外caffe.so應該就會誕生了。若make runtest過程中,若出現關於**protobuf**相關的錯誤,應該卸載protobuf-devel,手動下載**protobuf**源碼,手動編譯。

$ wget -O protobuf.zip https://github.com/google/protobuf/archive/master.zip$ unzip protobuf.zip$ cd protobuf-master$ ./autogen.sh$ make && make check$ sudo make install

——

2. 再安裝GPU加速 caffe

這一階段,我們又分成兩步走。:( 受不了,真當我們是小白呀<-_->

2.1 安裝Nvidia顯卡驅動
  • 首先得知道自己的顯卡型號。
    樓主是電腦顯卡型號 GTX 970,怎麼感覺不是土豪版。然後去Nvidia官網下載最新的驅動。趁著下載驅動的時候,我們來做一些羞羞的事情。


    $ lspci -nn | grep VGA

  • 禁止預設顯卡驅動
    開啟**/etc/modprobe.d/blacklist.conf**檔案,添加**blacklist nouveau**禁止centos預設安裝的顯卡驅動。阻止kernel載入nouveau模組(非必要操作)修改**/boot/grub/grub.conf**,【#vim /boot/grub/grub.conf】,在kernel行的末尾加上 rdblacklist=nouveau

blacklist nouveau
  • 安裝 kernel-devel,**DKMS**與 kernel-headers
    若你使用*yum*安裝,就會發現安裝的核心源碼版本是*2.6.32-504.el6.x86_64*,什麼鬼?若你不知不覺的往下做,毫無疑問,在編譯核心時會給你一個大大的錯。若聰明的你繞過了找不到源碼的錯無,成功編譯出新核心,那隻有恭喜你。因為,會在某個風和日麗的早上,你開啟電腦發現自己的系統怎麼成了**centos 6.6**了。什嗎?你能忍受。可是作為人送誠信小郎君的我,不能忍呀。解決方案如下:
    上這個網站,找到*kernel-devel-2.6.32-431.29.2.el6.x86_64.rpm*與*kernel-devel-2.6.32-431.29.2.el6.x86_64.rpm*下載到本地。
$ sudo yum install kernel-devel-2.6.32-431.29.2.el6.x86_64.rpm kernel-devel-2.6.32-431.29.2.el6.x86_64.rpm

然後你就可以在**/usr/src/kernels/**下找到源碼了。還需一步,安裝**dkms**,讓它協助我們編譯安裝驅動模組。

$ yum install dkms$ sudo cp -r /usr/src/kernels/2.6.32-431.29.2.el6.x86_64/ /usr/src/kernels/2.6.32-431.el6.x86_64/
  • 重建立立**initramfs image**檔案
$ mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak$ dracut /boot/initramfs-$(uname -r).img $(uname -r)
  • 文字模式
    修改**/etc/inittab**,使系統開機進入init 3文字模式:#vim /etc/inittab
    將最後一行“id:**5**:initdefault:”修改成“id:**3**:initdefault:”(不包含引號)。等安裝驅動檔案下載完成之後
$ reboot
  • 安裝
    啟動後,會進入文本介面。然後*cd*進入驅動程式所在目錄,開始安裝
$ chmod +x NVIDIA-Linux-XXXX.run$ ./NVIDIA-Linux-XXXX.run

在一番同意,確定之後,驅動就安裝好了。修改**/etc/inittab**,改回圖形介面。

$ reboot

安裝成功,登陸後在系統- 喜好設定裡可以看到NVIDIA X Server Settings菜單,可以查看基本資料及進行一些設定。

2.1 安裝CUDA
  • 首先下載完CUDA 6.5的RUN檔案
$ chmod +x cuda_6.5_XXXX.run$ ./cuda_6.5_XXXX.run

跳過第一項的驅動安裝,後面要麼yes要麼預設就可以了。注意最後將

  • /usr/local/cuda/bin加入**PATH**
  • /usr/local/cuda/lib64加入**/etc/ld.so.conf**
  • 安裝
    然後就是回安裝caffe的流程上了。注釋 CPU_ONLY := 1,再次編譯。當做到這一步時,你的小臉上是否出現了笑容。

Centos 6.5 install caffe+Nvidia driver+cuda 6.5

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.