分布式深度学习算法框架的实现
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.
分布式深度学习算法框架的实现
发表于 2018-10-17
| 阅读次数:
字数统计:
|
阅读时长 ≈
分布式深度学习的几种分类
数据并行 — 每台机器有自己的计算模型,权值进行共享
权值同步更新 – 有同步时间的矛盾,但是在收敛性上比较完整
权值异步更新 – 同步时间比较少,但是收敛性的验证不是很完备
-
现阶段比较少的模型使用到
不同的feature map 在不同的机器上
或者不同的层在不同的机器上进行计算
Non-blocking的数据并行算法
- forward运算时,y = w*x ,每个interation 需要等待上一个循环计算好的w值,除了第一个iteration。
- 这里需要注意的问题时,当通信时间过长时,需要考虑weight的等待时间,多一些模型会有影响
- backward运算时, dx = dy*w,backward计算时,不需要w进行更新的值,所以这里可以起一个线程进行all_reduce(),进行权值的更新。
实验结果,相对于blocking的算法,训练时间上有20%-40%性能提升;
对于异常点的监控
- 云服务中异常点的监控
- 采用异步的同步模型,收敛效果要监控
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
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK