【阿里云计算】【开发者成长】揭秘阿里云大规模深度学习性能优化实践( 四 )
第 3 个优势是结合云端做弹性伸缩 , 让用户业务的成本最优 。
第 4 个优势是和开源兼容的 , 用户用开源深度学习计算框架写的代码大部分都不用修改 , 直接采用 AIACC 库就可以得到性能上的飞跃 。
AIACC 主要是利用了基于通信的性能优化技术 。 通过前面的分享我们知道 , 在做分布式训练的时候我们需要在机器之间、GPU 之间交换梯度数据 , 需要做到非常高效的数据通信 。
我们的分布式通信优化分为三个方面的优化 。
第 1 个方面是做通讯和计算的重叠 。我们梯度是做异步通信的 , 在计算的时候并行去做梯度通信 , 从而将通信的时间隐藏在计算后面 。
第 2 个方面是做了延迟的优化 。我们在做梯度通信之前需要去做梯度协商 , 需要知道每台机器上 GPU 里的梯度是不是 ready , 然后再做通信 。 传统的做法是通过一个中心化的节点去做所有节点梯度协商 , 这样当规模上来时 , 延迟会非常高 。 而我们的优化方法是去中心化的方式去做梯度协商 , 这样的效率更高 , 大规模下延迟也不会提高 。
第 3 方面的优化是做带宽的优化 , 带宽方面有 5 种优化方法:
第 1 种优化方法是基于拓扑结构的分级通信优化 。 我们知道在一台机器上的 GPU 之间的通信带宽是很高的 , 而跨机的 GPU 通讯的带宽是很低的 , 所以我们通过分级通信优化 。 先在机器内部做 GPU 之间的通信 , 然后再在 GPU 机器之间做通讯 。
第 2 种优化方法是做混合精度传输 。 原始的梯度的精度都是 float32 类型的 , 我们在做计算的时候还是保持 float32 的精度 , 但是在梯度传输的时候可以把它转成 float16 的精度去做梯度传输 , 这样要传输的数据量直接减少一半 。 同时 , 我们通过 scaling 的方式保持精度不下降 。
第 3 种优化方法 , 是做多梯度融合通信 。 一个模型在做分布式通信的时候需要对很多层的梯度都来做通信 , 如果每计算出来一个梯度就去做一次通信的话 , 很多层的梯度数据包是非常小的 , 对带宽的利用率是非常低的 。 于是 , 我们做了梯度融合 , 等到一批梯度融合之后 , 再做一批梯度的多机通信 , 这样对带宽利用率是很高的 。
第 4 种优化方法是做多流通讯 。 在高带宽的 TCP 网络情况下 , 单个通信流是没有办法把带宽打满的 , 所以我们用多流来做通信 。 然而 , 我们发现 , 多流的情况下多流之间的传输速率是不一样的 , 于是做了负载均衡 , 传得更快的流会自动拿更多的梯度通信 , 传得更慢的流会通信更少的梯度 。
第 5 种优化方法是对融合的粒度以及通信的流数作了一个动态的 tuning 过程 。 我们在开始训练开始的几个 batch 的时候 , 会根据当前网络的情况对这些参数做动态的调整从而达到最优性能 , 这样我们就可以动态的适配在不同网络情况下达到最优的性能 。
本文插图
这个图是我们做动态调优的过程 , 绿色部分是做计算 , 红色部分是做通信 , 我们可以看到在训练刚开始的几个 batch 只有一个流作通信 , 而且它的通信时间会比较长 。 在中间这一段我们开出了两个流来做通信 , 在后面这一段我们开出了 4 个流来做通信 , 并且 4 个流之间是做了负载均衡 , 在最后一个 batch 的时候 , 我们达到了一个最佳的性能 。
本文插图
经过这些性能优化工作 , 我们也小试牛刀 , 训练上述大厂的 ResNet-50 模型 +ImageNet 数据集的任务 , 在 512 张 P100 上的性能比单卡性能能够加速 462 倍 , 基本上达到了接近线性的加速比 , 将训练时间从原来的 5 天时间缩短到了 16 分钟 。
这次 DWANBench 打榜 , 我们也发布了基于 V100 的大规模训练时间 , 训练达到 top5 的 93% 的精度只需要 2 分 38 秒 。
推荐阅读
- 畜牧业@畜牧互联网再次引爆:阿里养猪,京东养鸡,快看大佬们都在干嘛
- 『手机技巧超人』手机开发者选项居然这么神奇!手机用了这些年,你不会还不知吧?
- 『腾讯科技』淘宝天猫蒋凡在阿里内网回应传闻:深表歉意,恳请公司展开调查
- #阿里巴巴#将饿了么卖给阿里,套现600亿的大学生,如今在干什么呢?
- 服务@云市场跨步式发展 打造ToB云市场阿里腾讯外“第三股势力”
- 『程序员』阿里程序员感慨:公司期权套牢了我,外面开五六万的薪资都不想接
- 「创作者来直播」阿里老师给检察官做直播,猜猜带的什么货?
- 『湘潭』华为、京东、阿里云……湘潭欲打造的这个“英雄联盟”很是“牛”
- #新开普#阿里系进驻后股价翻倍,这家豫股却遭大股东减持套现63次丨立方财报眼
- 【天猫】天猫“总裁夫人”手撕张大奕:如涵股价暴跌9% 阿里股价波动较小
