Near-Optimal Topology-adaptive Parameter Synchronization in Distributed DNN Training(论文笔记)

问题

GPU间的通信经常是异构的,会受到以下因素的影响:GPU是否位于同一台物理机器上以及机器间的可用带宽。

给定GPU间的连接和带宽,此文寻找最好的参数同步方案,以充分利用可用带宽进而最小化通信时间。参数同步方案规定了梯度/参数块在工作节点之间的交换方式,即交换的拓扑结构和在拓扑结构上交换梯度/参数数据的数量。

设计

问题模型

此文符号设计如下:

在这里插入图片描述

系统抽象

worker之间通过任意的物理网络连接,两个节点之间可以没有连接链路。在一次通信轮中,可以让worker的一个子集参与同步参数,将子集中的这些节点称作active workers或 V ~ \widetilde{V} V 。例如,当worker的计算速度不同时,参数可以在速度相近的worker子集之间同步。

通信

性质1: 对于不可分的参数块,最好的归约/广播拓扑是一棵树。因为在归约阶段,每个worker只需要把这个块发送给一个其他的worker,而在广播阶段,每个worker只需要从一个其他的worker那里收到这个块。

性质2: 忽略每个worker的梯度/参数处理时间(归约时的平均、广播时的转发),假定参数块 c i c_i ci能被分成无穷小的子块进行流水线传输,在归约(广播)树上的归约(广播)的时间渐近于
∣ c i ∣ m i n e ∈ R i b e \frac{|c_i|}{min_{e\in R_i}b_e} mineRibeci
其中树 R i R_i Ri的有效带宽为 w ( R i ) = m i n e ∈ R i b e w(R_i)=min_{e\in R_i} b_e w(Ri)=mineRibe。( b e b_e be指的是树上边的可用带宽)

为了最大化利用worker间的连接带宽,此文确定一组归约(广播)树,然后将参数C划分成对应数量的块 c 1 , c 2 , . . . c_1, c_2, ... c1,c2,...。沿着每棵树,参数块进一步被划分成很小的子块进行流水线传输,以最大化利用链路的并行传输。

性质3: 给定归约(广播)树集合 R 1 , . . . , R r {R_1, ..., R_r} R1,...,Rr,通过将模型参数C按有效带宽的比例分配给每棵树,可以达到最小归约(广播)时间。即 ∣ c i ∣ ∝ w ( R i ) |c_i| \propto w(R_i) ciw(Ri),时间 T = ∣ c i ∣ w ( R i ) = γ T=\frac{|c_i|}{w(R_i)}=\gamma T=w(Ri)ci=γ

C v C_v Cv是分配给以worker v为根的归约/广播树的参数块的集合,可能包括多个块(多个树)。worker v从以它为根的归约树得到所有active worker的对应梯度块,得到更新的参数后,再通过以它为根的广播树将更新后的参数广播给所有的active worker。注意,广播树和归约树不一定是相同的。示意图如下:

在这里插入图片描述

在所有以v为根的归约树上的, C v C_v Cv的归约时间为 ∣ C v ∣ ∑ i ∈ T ( v ) w i \frac{|C_v|}{\sum_{i \in \mathfrak{T}(v)}w_i} iT(v)wiCv

因此所有参数的归约的时间可写为:

在这里插入图片描述

所有参数的广播时间可写为:

在这里插入图片描述

在N个活跃worker上的总通信时间可写为:

在这里插入图片描述

目标就是最小化通信时间,因为|C|是固定的,所以优化问题如下:

在这里插入图片描述

(3a)中的约束表示由根在v的树归约的同一组块,然后由根在v的树广播。(3b)是归约树的带宽约束,(3c)是广播树的带宽约束。在这个公式中,还原树和广播树不共享链路带宽,假设广播阶段在所有归约树的归约过程完成后开始。注意, x e i x_e^i xei x e j x_e^j xej是提前确定好的,不是此优化问题的变量。

因为归约时间和广播时间相等,所以优化问题可以写成如下方式:

在这里插入图片描述
这是一个线性规划问题。

参数同步拓扑构造

在这节中,将会介绍一个高效算法来找到归约和广播树进行参数同步。在整个归约阶段完成后,广播阶段才会开始执行。问题(3)被划分成两个子问题,分别是找到归约树的集合和广播树的集合。寻找连接活跃节点的归约(广播)树本质上是一个有向Steiner森林打包问题。具体算法如下:

在这里插入图片描述

具体过程略去不表。根据以上算法产生广播树和归约树后,使用这些树解决优化问题(4),其是一个线性规划问题,得到每棵树的权重(可用带宽)。此求解过程得到的结果是一个近似解。

重叠归约与广播

在归约阶段,可以使用流水线方式对归约和广播进行并行。具体来说,在归约阶段中,可以对已经归约好的部分调用广播。此文又定义了一个优化问题,此优化问题把归约和广播的并行考虑了进去,如下:

在这里插入图片描述

其中 w k w_k wk的部分就是在归约阶段进行广播的有效带宽。在归约阶段进行广播的广播树和在广播阶段进行广播的广博树是一样的。这些归约树和广播树也是利用算法1得到的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值