• 教程 >
  • 什么是分布式数据并行 (DDP)
快捷方式

简介 || 什么是 DDP || 单节点多 GPU 训练 || 容错 || 多节点训练 || minGPT 训练

什么是分布式数据并行 (DDP)

作者:Suraj Subramanian

您将学到什么
  • DDP 在幕后是如何工作的

  • 什么是 DistributedSampler

  • 梯度如何在 GPU 之间同步

先决条件

按照以下视频或在 youtube 上进行操作。

本教程是 PyTorch DistributedDataParallel (DDP) 的一个简单介绍,它使 PyTorch 中的数据并行训练成为可能。数据并行是一种在多个设备上同时处理多个数据批次以实现更高性能的方法。在 PyTorch 中,DistributedSampler 确保每个设备获得一个不重叠的输入批次。模型在所有设备上复制;每个副本计算梯度,并同时使用 环形全归约算法 与其他副本同步。

说明性教程提供了对 DDP 机制更深入的 Python 视角。

为什么您应该选择 DDP 而不是 DataParallel (DP)

DataParallel 是一种较旧的数据并行方法。DP 非常简单(只需一行额外的代码),但性能要差得多。DDP 在几个方面改进了架构。

DataParallel

DistributedDataParallel

开销更大;模型在每次前向传递中都被复制和销毁

模型仅复制一次

仅支持单节点并行

支持扩展到多台机器

速度较慢;在一个进程上使用多线程,并遇到全局解释器锁 (GIL) 争用

速度更快(没有 GIL 争用),因为它使用多进程

进一步阅读

文档

访问 PyTorch 的全面开发者文档

查看文档

教程

获取针对初学者和高级开发人员的深入教程

查看教程

资源

查找开发资源并获得问题的解答

查看资源