Centos6.5+CUDA6.5+caffe安装配置及可能遇到问题解答
原文地址:http://m.blog.csdn.net/article/details?id=44726367
分类: Linux
写这篇文章之前,首先感谢一下容天汇海公司的那个姐姐和我的大师兄,谢谢你们耐心解答我和毛毛同学遇到的问题,我们要继续努力!
好啦,现在我们就开始吧,安装好系统,配置完环境就可以跑程序了。
本篇文章我参考了这两篇文章:
http://www.rthpc.com/plus/view.php?aid=351 http://jingyan.baidu.com/article/414eccf60142f06b431f0a37.html
第一步:安装Centos6.5系统
1.下载UltraISO( 软碟通)、Centos6.5镜像,制作U盘启动盘。这个现在装机这么随便的时代,这点我就不罗嗦了。
2.BIOS里设置U盘为第一启动项。
3.插上U盘,重启系统。进入安装的第一个界面,选择第一项。
4.选择语言(Chinese(Simplified))和启动位置(这里选择Hard drive 因为系统在优盘上)选择优盘的盘符,一般情况下电脑里的硬盘盘符为sdb1/2/3,优盘的盘符为sda()。
5.设置主机名
6.安装将使用哪种设备? 选择基本存储设备
7.设置主机名和超级管理员密码
8.选择安装类型(选择自定义安装)接着分区,分区的一般规则为,分为三个区,SWAP,(文件系统为exet4),home(文件系统为exet4)。SWAP分区大小一般为内存的一倍,根目录我分了500G(参考我的硬盘为4TB),home一般为硬盘剩下的大小。
9.分区完成,进入到下一步,这一步非常重要,一旦把引导程序装错,将无法正常启动系统。
引导程序的选择一定要选择硬盘为第一引导,不然默认是优盘启动(装完系统必须要插着优盘才能启动)。这里我用了一个百度上的图,上面标明的很清楚,第一步选择更换设备,要选择引导分区的第一个扇区-dev/sdb1,这是是硬盘的,如果选择第一个的话,引导记录将安装在U盘,以后不插着U盘电脑就没法启动,所以一定慎重选择。第二步BIOS驱动器顺序这个影响不大,安装完,重启的时候把U盘拔下来就行了。
10.接下来选择系统安装类型,按自己的需要选择。在选择安装软件时候,可以选择现在自定义,按需要选择安装。到最后一个安装画面,此时就安装完毕。重新引导启动。
11.第一次启动,需要你建立用户,然后有一个什么保护机制,勾选上就行,重新启动就OK了,这样Centos6.5系统就安装完毕了。
第二步:安装CUDA6.5
1.禁用自带的nouveau驱动
# sudo gedit /etc/modprobe.d/blacklist.conf
在文件的末尾,添加上blacklist nouveau
2.重新建立 initramfs 文件,在/boot下面有一个initramfs*.img的文件,执行下面两个操作
# mv (initramfs文件名).img (initramfs文件名).img.bak
# dracut -v (initramfs文件名).img
3.在root里建立一个Installpackage文件夹,把下载的CUDA6.5的那个run文件拷进去
4.修改系统默认启动界面,从默认启动图形界面,改为默认启动文本界面,执行下面这个操作
# gedit /etc/inittab
在打开的文件的最后一行,把那个5改成3,然后退出来,在命令行输入reboot,重启进入文本界面。
5.重启进入文本界面之后,以root身份进入,cd到你放.run的那个文件夹。输入以下命令
# ./那个run文件名
之后根据英文提示一直进行就是了。这个阶段就能顺带把NVIDIA显卡的驱动给装好了,所以不用再费事单独去装NVIDIA显卡的驱动了。
安装成功以后,输入以下命令,把默认启动改回来,改回默认启动图形界面。
# vi /etc/inittab
然后输入i,把光标移动到最后一行,把3改为5.之后按Esc键,退出编辑框,按Shift+冒号,之后输入wq,Enter退出。最后输入reboot,重启就进入图形界面了,至此你的NVIDIA显卡的驱动安装成功了,CUDA6.5也安装成功了。
第三步:安装Caffe
建议由 root 进行编译安装工作,在 /root 下新建 caffe 目录作为工作目录。
1.安装 atlas、snappy、opencv、bootst 和 lmdb,使用 yum install 方式;
# yum install atlas-devel
# yum install snappy-devel
# yum install opencv-devel
# yum install boost-devel
# yum install lmdb-devel
2.安装 protobuf,本次使用的版本是 2.5.0,将 protobuf-2.5.0.tar.gz 拷贝到工作目录下。在 /opt 下新建 protobuf 目录。
# cd ~/caffe
# tar –xvf protobuf-2.5.0.tar.gz
# cd protobuf-2.5.0
# ./configure –prefix=/opt/protobuf
由于 protobuf 要安装在 /opt/protobuf 下,所以 —prefix 指定了目录。
# make
# make install
这时候在 /opt/protobuf 目录下生成 bin、include 和 lib 三个子目录。
3.安装 leveldb,本次使用的版本是 1.7.0,将 leveldb.1.7.0.tar.gz 拷贝到工作目录下。
# cd ~/caffe
# tar –xvf leveldb-1.7.0.tar.gz
# cd leveldb-1.7.0
# make
# cp libleveldb* /usr/lib/.
将相应库文件拷贝到系统库文件目录下,这个时候查看以下,看拷贝过去的文件时候链接关系也保存下来,如果链接关系没拷过来,手动拷贝一下,要不后面caffe的编译会出错。
# cp –r include/leveldb /usr/local/include
将相应头文件拷贝到系统头文件目录下。
4.安装 hdf5,本次使用的版本是 1.8.8,将 hdf5-1.8.8.tar.gz 拷贝到工作目录下。在 /opt 下新建 hdf5 目录。
# cd ~/caffe
# tar –xvf hdf5-1.8.8.tar.gz
# cd hdf5-1.8.8
# ./configure –prefix=/opt/hdf5
由于 hdf5 要安装在 /opt/hdf5 下,所以 —prefix 指定了目录。
# make
# make install
这时候在 /opt/hdf5 目录下生成 bin、include、lib 和 share 四个子目录。
5.安装 glog,本次使用的版本是 0.3.3,将 glog-0.3.3.tar.gz 拷贝到工作目录下。
# cd ~/caffe
# tar –xvf glog-0.3.3.tar.gz
# cd glog-0.3.3
# ./configure
# make
# make install
- 安装 gflags,我们这里直接用caffe官网的提示安装方法。
# wget https://github.com/schuhschuh/gflags/archive/master.zip
# unzip master.zip
# cd gflags-master
# mkdir build && cd build
# export CXXFLAGS=”-fPIC” && cmake .. && make VERBOSE=1
# make && make install
要求 cmake 版本 2.8.4 以上,如果系统 cmake 版本低,可以 # yum install cmake
- 配置 OpenCV 环境。
# cd ~/caffe
# git clone https://github.com/jayrambhia/Install-OpenCV
# cd Install-OpenCV/RedHat
# sh ./opencv_latest.sh
- 修改 ~/.bashrc文件设置环境变量
# vi ~/.bashrc
将 /opt/protobuf/bin 加入到 PATH 中,即增加如下内容:
export PATH=$PATH:/opt/protobuf/bin
保存退出。
退出终端窗口,重新启动一个终端窗口以使更改生效。
9.将 cudnn-6.5-linux-R1.tgz 拷贝到工作目录下。
# cd ~/caffe
# tar xvf cudaa-6.5-linux-R1.tgz
# cd cudaa-6.5-linux-R1
# cp *.h /usr/local/include/.
将头文件拷贝到系统头文件目录下。
# cp lib* /usr/local/lib/.
将库文件拷贝到系统库文件目录下。
# ldconfig
10.安装 caffe,将 caffe-master.zip 拷贝到工作目录下。
# cd ~/caffe
# unzip caffe-master.zip
# cd caffe-master
# cp Makefile.config.example Makefile.config
# vi Makefile
修改内容为:
COMMON_FLAGS 加上 –I/opt/protobuf/include –I/opt/hdf5/include(Build Flags,留一个空格,直接加上去就行)
LDFLAGS 加上 –L/opt/protobuff/lib –L/opt/hdf5/lib
LIBRARIES += boost_thread 改为 LIBRARIES += boost_thread-mt
# vi Makefile.config
修改内容为:
USE_CUDNN 行的注释去除,即 USE_CUDNN := 1
LIBRARY_DIRS 加上 /usr/lib64/atlas
# make all</span>
11.配置运行环境。
caffe 运行时需要调用 protobuf 和 hdf5 的库,我们在 /etc/ld.so.conf.d 目录下新建一个 caffe.conf 文件,将所需要用到的库的目录写入。
# vi /etc/ld.so.conf.d/caffe.conf
增加内容
/opt/protobuf/lib
/opt/hdf5/lib
保存退出
# ldconfig
12.运行测试
# cd ~/caffe/caffe-master
# sh data/mnist/get_mnist.sh
# sh examples/mnist/create_mnist.sh
# vi examples/mnist/lenet_solver.prototxt
# time sh examples/mnist/train_lenet.sh
我测试的机子的硬件配置:
CPU:2颗 E5-2620
内存:64G
GPU:1片K40
运行时间,选取了real那个时候,50秒左右。
今天就先写到这里吧,中间还遇到过几次错误,明天再添加进来。
以此为第一篇CSDN博客来激励自己,在技术的道路上越走越远,在梦想的道路上越走越近!