开发者社区> 问答> 正文

AI加速器的分布式通信优化方法是怎样的?

AI加速器的分布式通信优化方法是怎样的?

展开
收起
追风少年刘全有 2021-11-26 11:46:39 2873 0
1 条回答
写回答
取消 提交回答
  • (1)计算和通信的重叠。传统的计算和通信是串行的,即先做完梯度计算、再做梯度通信,我们的第一个优化工作是将计算和通信重叠起来,尽量减少通信的开销。

    (2)去中心化梯度协商。传统分布式梯度协商方式是根节点和所有节点都协商, 因此根节点的负担会随着节点数增加而大幅升高。而我们采取的去中心化的梯度协商方式,将大规模下梯度协商的复杂度降低了一个数量级。

    (3)梯度压缩。将要传输的梯度从FP32 压缩到FP16,并建立了相应的数据缩放机制,从而防止精度损失。

    (4)分级通信优化。传统的环形通信方式是将所有节点上的GPU 形成一个大环, 致使其整体性能在以太网的通信上受到限制。我们做了分级通信的优化,首先在节点内部的GPU 上做一级规约通信,每个节点都规约到一块GPU 上,然后每个节点的这个GPU 再做二级规约通信。这样一方面减少了以太网上传输的数据量,另一方面通过流水线将节点内部的规约通信和节点之间的规约通信重叠起来,减少了整体通信时间。

    (5)梯度融合优化。传统的通信方法是计算出一个梯度通信一次,这样会产生很多小包的通信,对网络带宽非常不友好,优化是等一批梯度计算完成后再融合在一起做通信,这样的大数据包能够大大提升网络带宽的利用率。

    资料来源:《弹性计算—无处不在的算力》

    2021-11-26 16:08:15
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Lindorm AI 能力介绍 立即下载
2023云栖大会:PolarDB for AI 立即下载
2023云栖大会:Lindorm一站式AI数据平台实战 立即下载