详细内容或原文请订阅后点击阅览
优化分布式 AI/ML 训练工作负载中的数据传输
借助 NVIDIA Nsight™ 系统深入探讨数据传输瓶颈、识别瓶颈及其解决方案 - 第 3 部分优化分布式 AI/ML 训练工作负载中的数据传输一文首先出现在 Towards Data Science 上。
来源:走向数据科学关于使用 NVIDIA Nsight™ 系统 (nsys) 分析器优化数据传输的系列文章的一部分。第一部分重点介绍 CPU 到 GPU 的数据复制,第二部分重点介绍 GPU 到 CPU 的复制。在这篇文章中,我们将注意力转向 GPU 之间的数据传输。
如今,AI/ML 训练(尤其是大型模型)分布在多个 GPU 上是很常见的。虽然执行这种分布的方案有很多不同,但它们的共同点是在整个训练过程中都依赖于 GPU 之间不断传输数据,例如梯度、权重、统计数据和/或指标。与我们在之前的文章中分析的其他类型的数据传输一样,实施不当也很容易导致计算资源利用不足和培训成本不合理的膨胀。优化 GPU 到 GPU 的通信是一个活跃的研究和创新领域,涉及硬件和软件开发。
在这篇文章中,我们将重点关注最常见的分布式训练形式——数据分布式训练。在数据分布式训练中,每个 GPU 上都会维护 ML 模型的相同副本。每个输入批次均匀分布在 GPU 之间,每个 GPU 执行一个训练步骤来计算局部梯度。然后,局部梯度在 GPU 之间共享和平均,从而对每个模型副本进行相同的梯度更新。使用 NVIDIA Nsight™ 系统 (nsys) 分析器,我们将分析 GPU 到 GPU 梯度传输对训练玩具模型的运行时性能的影响,并评估一些减少其开销的技术。
免责声明
我们将在本文中分享的代码旨在用于演示目的;请不要依赖其准确性或最优性。请不要将我们提及的任何工具、框架、库、服务或平台视为对其使用的认可。
感谢 Yitzhak Levi 对本文的贡献。
nvidia-smi 拓扑-m
