论文阅读

  • 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 还支持在卡上跑超过显存容量的网络,直接解决了对模型并行的需求。
主要看点:

  1. GPU PS与CPU PS为什么会有不同。
  2. 把parameter cache放到GPU mem可以节省多少通信量。
  3. GPU内存池
  4. 对 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 常常更加稳定

  • Allreduce (or MPI) vs. Parameter server approaches

MPI vs Parameter

  • 2012 NIPS - Large Scale Distributed Deep Networks

Douwnpour SGD


image.png

几个关键点:

  1. 参数服务器是分布式的,每个节点负责一部分参数
  2. 每个model replicas 负责不同的data shards(这不就是数据并行吗。。。),每次训练处理一个mini-batch
  3. 每个mini-batch前,各个model replicas去找参数服务器更新自己的参数
  4. 为了减小通信量,Downpour SGD引入了一种延迟更新的机制,每隔几个step才会push和pull参数。
  5. 采用Adagrad自适应学习率
    资料:https://blog.csdn.net/itplus/article/details/31831661
  • 2013 ICML - Deep Learning with COTS HPC

基于IB和MPI的HPC构建了一个系统,可以在16个节点上运行一个11B的大型神经网络,使大型神经网络可以更好的被实现。
关键点:

  1. 基于cuda写了一些基础的数学运算。
  2. 使用了强模型并行,所有GPU一起做同一个batch的计算。
  3. 写了一套在gpu上做模型并行的逻辑。。。很遗憾没有看懂

你可能感兴趣的:(论文阅读)