Caffe安装以及GPU服务器设置并行

Caffe安装以及GPU服务器设置并行


本人新手,在学习GPU服务器的使用,欢迎大家一起交流。这篇博客主要讲的是之前安装的CPU版本的caffe后,进行修改为gpu的版本。

目录

caffe的安装(非GPU)

这个很简单,在网上就有很多的安装教程,但我这里也稍微讲下吧。我这里用的是Ubuntu的系统。

首先登陆root账号

下载依赖包:
apt-get install git
apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler
apt-get install –no-install-recommends libboost-all-dev
apt-get install libatlas-base-dev
apt-get install python-dev
apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev

下载Caffe源码:
git clone https://github.com/bvlc/caffe.git
cd caffe/
mv Makefile.config.example Makefile.config

修改Makefile.config:
vi Makefile.config
如果电脑上没有gpu,需要把其中的CPU_ONLY打开,就是去掉注释。
下面这个是vi的一些操作指令,本人新手,所以想新手都可能会用到。
http://www.cnblogs.com/88999660/articles/1581524.html

编译Caffe:
make -j
对了,本人一开始用的电脑比较旧多线程貌似不支持,编译就用的是
make all

如果只是在CPU上运行,到这里就结束了,下面是我自己遇到的一些问题和解决

nccl安装

有很多教程是在caffe安装之前做这部的,但是我说了,我之前的caffe是已经装好的CPU版的,所以之后想改,就自己找了资料,进行修改了。因为用的是多GPU的服务器,肯定要并行运算啊,不然要那么多GPU干嘛?所以要并行就要安装nccl,不然是不行的。
安装步骤:

git clone https://github.com/NVIDIA/nccl.git
cd nccl
sudo make install -j4
NCCL 库和文件头将安装在 /usr/local/lib 和 /usr/local/include 中。

重新编译caffe

之前说了,很多教程是在编译caffe之前安装nccl的,为什么呢,因为修改了Makefile.config啊!!
因为要进行并行使用,所以在Makefile.config中要把USE_NCCL=1前面的注释去掉,同样使用vi命令啦。
usenccl具体的位置
这样修改保存后,接下来就是重新编译caffe了。
首先,是将之前的clean掉了,输入:
make clean
然后,重新编译:
make -j

并行计算和调试错误

到这里之后,我就试着使用:
./build/tools/caffe train -solver=examples/mnist/lenet_solver.prototxt -gpu all

进行测试啦,结果果然出错了。。。。。
具体的错误就是:
error while loading shared libraries: libnccl.so.1: cannot open shared object file: No such file or directory
说是没有这个文件,我又开始搜啊搜。。。
结果是在一篇博客找到解决方案:
具体的原因说是:但执行需要调用该共享库的程序的时候, 程序按照默认共享库路径找不到该共享库文件。
方法很简单,就是用root账户执行下:
ldconfig
这个命令,就好了,对了,第一个是L的小写,不是i的大写哦。
对了,这个博客地址是:
http://www.cnblogs.com/Anker/p/3209876.html
有兴趣可以看看的。

我解决好这个问题后又开心的执行上面的:
./build/tools/caffe train -solver=examples/mnist/lenet_solver.prototxt -gpu all
结果就是又出错了啊!!!错误就是下面这个:

Check failed: result == ncclSuccess (1 vs. 0) unhandled cuda error

大概看了一下,意思就是nccl没有成功,我没有再上网乱搜,而是想起来之前看的GPU服务器的介绍,想起来我这台服务器上有9块GPU,但实际上只有8块是真的能使用的,另一块是服务器自己的用来显示什么的一些其他功能的,所以我就想是不是那块的原因,于是我就修改了下命令:
./build/tools/caffe train -solver=examples/mnist/lenet_solver.prototxt -gpu 0,1,2

这里写图片描述
这次终于没有出错,开始了它该做的事情。
(所以大家做事要耐心。。。)

随便说些

其实我就是个新手,就是搜集了些资料,想方便自己,也方便别人看看,如果有人看得到的话。。。


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值