标签:
前不久,在一台新机器上安装了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可以分成两步走。
这样方便我们在出现错误时能够快速定位问题,解决问题。
—
在写这一小节前有必要,交代一下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
sudo yum -y groupinstall "Development Tools"
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
用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
$ 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
上来就敲下面的命令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
sudo yum install atlas-devel
$ 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
——
这一阶段,我们又分成两步走。:( 受不了,真当我们是小白呀<-_->
首先得知道自己的显卡型号。
楼主是电脑显卡型号 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
$ 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/
$ mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak
$ dracut /boot/initramfs-$(uname -r).img $(uname -r)
#vim /etc/inittab
$ reboot
$ chmod +x NVIDIA-Linux-XXXX.run
$ ./NVIDIA-Linux-XXXX.run
在一番同意,确定之后,驱动就安装好了。修改**/etc/inittab**,改回图形界面。
$ reboot
安装成功,登陆后在系统- 首选项里可以看到NVIDIA X Server Settings菜单,可以查看基本信息及进行一些设置。
$ chmod +x cuda_6.5_XXXX.run
$ ./cuda_6.5_XXXX.run
跳过第一项的驱动安装,后面要么yes要么默认就可以了。注意最后将
安装
然后就是回安装caffe的流程上了。注释 CPU_ONLY := 1,再次编译。当做到这一步时,你的小脸上是否出现了笑容。
Centos 6.5 install caffe+Nvidia driver+cuda 6.5
标签:
原文地址:http://my.oschina.net/speedinghzl/blog/464142