6

分布式深度学习算法框架的实现

 2 years ago
source link: https://zasy.github.io/2018/10/17/project-3/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

分布式深度学习算法框架的实现

发表于 2018-10-17

| 阅读次数:

字数统计:

|

阅读时长 ≈

  1. 分布式深度学习的几种分类

    • 数据并行 — 每台机器有自己的计算模型,权值进行共享

      • 权值同步更新 – 有同步时间的矛盾,但是在收敛性上比较完整

      • 权值异步更新 – 同步时间比较少,但是收敛性的验证不是很完备

      • 现阶段比较少的模型使用到

      • 不同的feature map 在不同的机器上

      • 或者不同的层在不同的机器上进行计算

  1. Non-blocking的数据并行算法

    • forward运算时,y = w*x ,每个interation 需要等待上一个循环计算好的w值,除了第一个iteration。
    • 这里需要注意的问题时,当通信时间过长时,需要考虑weight的等待时间,多一些模型会有影响
    • backward运算时, dx = dy*w,backward计算时,不需要w进行更新的值,所以这里可以起一个线程进行all_reduce(),进行权值的更新。
  2. 实验结果,相对于blocking的算法,训练时间上有20%-40%性能提升;

  3. 对于异常点的监控

    1. 云服务中异常点的监控
    2. 采用异步的同步模型,收敛效果要监控
  4. benchmark

    alexNet 128x3x224x224 177ms

    googlenet 128x3x224x224 687ms

Batch size BS=32 BS=64 BS=128 Comm.

VGG19 960ms 1700ms 3200ms 1300ms

GoogleNet v1 163ms 280ms 520ms 230ms

ResNet50 420ms 800ms 1600ms 340ms

16 commucation node


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK