[网络领域顶会追踪系列#25][NSDI'22]加速跨深度学习框架中数据并行训练的集群通信
本系列为个人论文阅读笔记,大多数应该是对顶会摘要的个人菜鸟翻译,旨在让感兴趣的朋友能快速浏览、获取信息。如有错误或心得,欢迎在评论区交流指正!
Accelerating Collective Communication in Data Parallel Training across Deep Learning Frameworks
工作
本工作在Horovod内开发了新的技术,Horovod是一种跨深度学习框架的支持数据并行训练的通用通信库。
特别地,作者通过实现了新的协作方案来提升Horovod的控制面,该协作方案能够获取典型数据并行创建模式的优点,即在一组固定的张量梯度上重复执行集合运算。使用缓存策略,作者在一次典型训练过程中,只执行一次Horovod的现有worker协作逻辑,使用一个用了缓存数据和用于剩余的训练时间的比特向量的全局交集的高效分布式编排策略来代替它。
接着,作者引入了一个针对终端用户显式将集体操作分组的特性,从而实现对通信缓冲区大小更精细的控制。
实验
作者为评估其提出的方法,在一个世界级的超级计算机---Summit上进行了实验。
- 作者将其方法与Horovod的原始设计做了对比,在6000个GPU上的规模上观测到了2倍的性能提升。
- 作者也将它们与tf.distribute和torch.DDP做了对比,在最多1536个GPU上,分别实现了12%以上和差不多的性能。
- 作者在典型的HPC设置下,将自己的解决方案与BytePS对比,在768个GPU规模上,实现了约20%的性能提升。
- 最后,在一个科学应用(STEMDL)上使用最多27600个GPU(整个Summit)上进行了测试,结果表明,作者实现了0.93的近似线性规模性,在FP16的精度下有着1.54exaflops的持续性能。
原文摘要
This work develops new techniques within Horovod, a generic communication library supporting data parallel training across deep learning frameworks. In particular, we improve the Horovod control plane by implementing a new coordination scheme that takes advantage of the characteristics of the typical data parallel training paradigm, namely the repeated execution of collectives on the gradients of a fixed set of tensors. Using a caching strategy, we execute Horovod’s existing coordinator-worker logic only once during a typical training run, replacing it with a more efficient decentralized orchestration strategy using the cached data and a global intersection of a bitvector for the remaining training duration. Next, we introduce a feature for end users to explicitly group collective operations, enabling finer grained control over the communication buffer sizes. To evaluate our proposed strategies, we conduct experiments on a world-class supercomputer — Summit. We compare our proposals to Horovod’s original design and observe 2x performance improvement at a scale of 6000 GPUs; we also compare them against tf.distribute and torch.DDP and achieve 12% better and comparable performance, respectively, using up to 1536 GPUs; we compare our solution against BytePS in typical HPC settings and achieve about 20% better performance on a scale of 768 GPUs. Finally, we test our strategies on a scientific application (STEMDL) using up to 27,600 GPUs (the entire Summit) and show that we achieve a near-linear scaling of 0.93 with a sustained performance of 1.54 exaflops (with standard error +- 0.02) in FP16 precision.