caffe-parallel 使用总结(ONLY_CPU)
来源:互联网 发布:淘宝导入csv 编辑:程序博客网 时间:2024/06/02 02:14
浪潮的 caffe-parallel 确实实现了数据的并行化,但是使用起来还是和原版的caffe有些出入,毕竟是从一个旧版本fork过去的。对于使用的系统环境和依赖也比原版的多一点要求。下面说说在ubuntu12.04下面怎么搞起来的。
首先列举一些所有的依赖(我自己使用且顺利通过编译运行的):OpenBLAS官网最新版,Opencv系统自带,Boost1.56这个版本很重要,glog 0.33,gflags2.1.2 ,protobuf apt-get 安装,proto-complier apt-get, leveldb 1.15 ,snappy apt-get , HDF5 apt-get ,lmdb 0.9 ,autoconf apt-get ,MPICH3 3.1.4 官网,
gfortran apt-get,cmake 官网最新。其余的缺什么补什么即可。安装过程安装github上面readme和大众要求即可。
========================================================
在说一下其中的坑。主要就是boost 和 MPICH3,OpenBLAS。
boost 版本不够,会有些功能函数找不到,所以要比较新的版本。而且,如果系统里面已经安装了旧版的,或者从 apt-get里面更新了boost,要把/usr/bin ;/usr/lib下面旧版的boost文件都删掉,从/usr/local/bin 和/usr/local/lib 里面把所有boost文件都软连接到之前的目录。
MPICH3 和OpenMPI会有冲突,系统默认应该带了OpenMPI的东西,可以用apt-get purger openmpi-dev去移除相应的文件和组件(具体的package name 可以去 packages.ubuntu.com上查)。删完之后,把安装到本地的MPICH3 的相关文件软连接到 对应的 /usr/lib ;/usr/bin 下面。
编译阶段或者执行阶段,可能提示有些OpenBLAS的文件libopenblas****找不到,这时候从/opt/OpenBLAS 里面找到对应的文件,软连接到 /usr/lib 或者/usr/bin 下面,即可。
================================================
使用的时候要先配置好MPICH3 ,百度一下,肯定知道。最少都2个节点,一个主host,一个计算,多线程,数据并行,但是感觉还是通信开销挺大,一台服务器6并行结构跑cifar10 和我一个笔记本的速度差不多。
================================================
关于caffe-parallel数据并行化效率的一点总结。选择的机器尽可能多,至少一台host,一台计算机器。host会分发数据,其他机器计算,多线程并行,互不干扰。分配的进程数<= CPU实际核心数,这样才能尽可能提高效率,若进程数>=CPU实际核心数,效率会下降,可能有调度的原因在里面。
实际数据:单机跑cifar10 -quick-train,45min左右。2台计算机器,满核心(8线程)。100iters/30s ,共 4000iters,so,用时:30s * 4000/100 = 30 * 40 s= 1200s = 20min.效率提升 45-20 /45 = 25 / 45 = 55.6%
- caffe-parallel 使用总结(ONLY_CPU)
- [caffe]parallel
- GNU Parallel in caffe
- Parallel 简单总结
- [caffe使用]caffe使用中可能遇到的问题总结
- C# 使用Parallel并行开发Parallel.For、Parallel.Foreach实例
- Oracle Parallel使用
- Parallel多线程使用
- Parallel.Invoke 基本使用
- 学习Caffe(二)使用Caffe
- win10下caffe+gpu使用问题总结
- parallel studio工具学习总结
- Caffe学习总结(一)
- caffe总结
- Oracle 并行(Parallel)
- Parallel
- 使用 Parallel NFS 增强文件系统
- 【C#基础】Parallel的使用
- jquery serialize传中文乱码解决方法
- Markdown 语法(2)- 文本强调
- MacBook入手前知识
- 剑指offer 面试题23—从上往下打印二叉树
- Win7应用程序丢失的问题
- caffe-parallel 使用总结(ONLY_CPU)
- SenchaTouch动画 Ext.Anim的使用
- 阅读1,2
- DeepLearning tutorial(6)易用的深度学习框架Keras简介
- Java NIO:浅析I/O模型
- JDK+MyEclipse+Tomcat的配置
- iOS --- 在UITableView中使用segue进行页面跳转的注意事项
- Linux内核源代码情景分析-系统调用select以及异步输入/输出
- Sql Server 2008 如何调试存储过程