-
2013 NIPS - More Effective Distributed ML via a Stale Synchronous Parallel Parameter Server
to be read
分布式方法还是主要基于传统的 Parameter Server 对 Worker 的形式,但是提出了一种 SSP(Stale Synchronous Parallel) 模型来解决普通的同步或者异步模式下训练会有的问题。SSP 模型大致是说会在本地维护一个参数的 cache,每个工作的 node 直接从本地的 cache 中拿数据,跟 PS 之间的同步问题应该是另外处理,这样就把每个工作 node 等待网络的时间给降下来了。
-
2016 Eurosys - GeePS: Scalable Deep Learning on Distributed GPUs with a GPU-Specialized Parameter Server
to be read.
专门为gpu做的一套ps机制。主要针对 GPU 做了特别的优化和改进,克服了数据并行和模型并行,BSP 和异步这些老方法中存在的问题,最终结果性能爆炸。GeePS 还支持在卡上跑超过显存容量的网络,直接解决了对模型并行的需求。
主要看点:
- GPU PS与CPU PS为什么会有不同。
- 把parameter cache放到GPU mem可以节省多少通信量。
- GPU内存池
- 对 PS 模式下异步方式的思考,虽说把 BSP 改成异步的可以增加计算资源的利用率,但是收敛速度会放慢是肯定的,之前的不少研究也是在这两个方面作了取舍,才能让最终训练到相同效果的总体时间更短。这篇文章在同步延迟能够保证的情况下,测试结果偏向于用 BSP 收敛效果会更好。
相关资料:
http://jcf94.com/2017/12/20/2017-12-20-distributeddl/
http://www.uuudoc.com/doc/1D1J1B1C1E1D1D1B1C1L1B1F1J1D1D1F1G1H1K2N1I1E1K1D1L1I1L1D1G.html
-
2017 Facebook - Accurate, Large Minibatch SGD Training ImageNet in 1 Hour
Linear Scaling Rule:minibatch 扩大 k 倍,学习率也扩大 k 倍。
相关资料:https://www.zhihu.com/question/60874090/answer/181413785
-
Google 的 Rethinking synchronized sgd
数学上,sync sgd 比 async 常常更加稳定
MPI vs Parameter
-
2012 NIPS - Large Scale Distributed Deep Networks
Douwnpour SGD
image.png
几个关键点:
- 参数服务器是分布式的,每个节点负责一部分参数
- 每个model replicas 负责不同的data shards(这不就是数据并行吗。。。),每次训练处理一个mini-batch
- 每个mini-batch前,各个model replicas去找参数服务器更新自己的参数
- 为了减小通信量,Downpour SGD引入了一种延迟更新的机制,每隔几个step才会push和pull参数。
- 采用Adagrad自适应学习率
资料:https://blog.csdn.net/itplus/article/details/31831661
-
2013 ICML - Deep Learning with COTS HPC
基于IB和MPI的HPC构建了一个系统,可以在16个节点上运行一个11B的大型神经网络,使大型神经网络可以更好的被实现。
关键点:
- 基于cuda写了一些基础的数学运算。
- 使用了强模型并行,所有GPU一起做同一个batch的计算。
- 写了一套在gpu上做模型并行的逻辑。。。很遗憾没有看懂
网友评论