设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 手机 数据 公司
当前位置: 首页 > 运营中心 > 建站资源 > 经验 > 正文

分布式入门,怎样用PyTorch实现多GPU分布式训练(4)

发布时间:2019-05-06 01:30 所属栏目:19 来源:机器之心编译
导读:我们看一下更新方程的首次更新: 上面的第 2 点和第 4 点保证每个初始权重和梯度都是同步的。显然,它们的线性组合也是同步的( 是常数)。以后的所有更新都是类似的逻辑,因此也是同步的。 性能对比 所有分布式算法

我们看一下更新方程的首次更新:

上面的第 2 点和第 4 点保证每个初始权重和梯度都是同步的。显然,它们的线性组合也是同步的(λ 是常数)。以后的所有更新都是类似的逻辑,因此也是同步的。

性能对比

所有分布式算法的最大瓶颈就是同步。只有当同步时间显著小于计算时间的时候,分布式算法才是有益的。让我们在标准 SGD 和同步 SGD 之间做一个简单的对比,来看一下什么时候后者是比较好的。

定义:我们假设整个数据集的规模为 N。网络处理大小为 B 的 mini-batch 需要花费时间 Tcomp。在分布式情况下,all-reduce 同步花费的时间为 Tsync。

对于非分布式(标准)SGD,每个 epoch 花费的时间为:

对于同步 SGD,每个 epoch 花费的时间为:

因此,对于分布式环境,为了与非分布式环境相比有显著的优势,我们需要满足:

我们可以调整影响上述不等式的三个因子,从分布式算法中得到更多的好处。

  • 通过以高带宽的快速网络连接节点,来减小 Tsync。
  • 通过增加批大小 B,来增加 Tcomp。
  • 通过连接更多的节点和拥有更多的副本来增加 R。

本文清晰地介绍了深度学习环境中的分布式计算的核心思想。尽管同步 SGD 很流行,但是也有其他被频繁使用的分布式算法(如异步 SGD 及其变体)。然而,更重要的是能够以并行的方式来思考深度学习方法。请注意,不是所有的算法都可以开箱即用地并行化,有的需要做一些近似处理,这破坏了原算法给出的理论保证。能否高效处理这些近似,取决于算法的设计者和实现者。

原文地址:

https://medium.com/intel-student-ambassadors/distributed-training-of-deep-learning-models-with-pytorch-1123fa538848

【本文是51CTO专栏机构“机器之心”的原创译文,微信公众号“机器之心( id: almosthuman2014)”】

戳这里,看该作者更多好文

【编辑推荐】

  1. 对比复现34个预训练模型,PyTorch和Keras你选谁?
  2. 分布式系统的“流言蜚语”
  3. 自己动手撸一个分布式IM(即时通讯) 系统
  4. 分布式系统Kafka和ES中,JVM内存越大越好吗?
  5. 深入浅出百亿请求高可用Redis(codis)分布式集群揭秘
【责任编辑:赵宁宁 TEL:(010)68476606】
点赞 0

(编辑:ASP站长网)

网友评论
推荐文章
    热点阅读