码迷,mamicode.com
首页 > 其他好文 > 详细

Centos 6.5 install caffe+Nvidia driver+cuda 6.5

时间:2015-06-08 15:21:06      阅读:983      评论:0      收藏:0      [点我收藏+]

标签:

Centos 6.5安装caffe全纪录

前不久,在一台新机器上安装了caffe,用于深度学习。其实本人小白一个,在安装caffe的过程中走了很多弯路。在遇到问题时,还好有**google**,可以得带、哦一些解答。但是悲剧的是,有一些问题还真是搜不到答案。比如:

NVCC src/caffe/layers/relu_layer.cu
src/caffe/layers/prelu_layer.cu(58): error: a host function call cannot be configured
detected 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 -a LSB 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-noarch Distributor ID: CentOS Description: CentOS release 6.5 (Final) Release: 6.5 Codename: Final $ uname -r 2.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
$ 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

标签:

原文地址:http://my.oschina.net/speedinghzl/blog/464142

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!