从PyTorch v1.6.0开始,中的功能torch.distributed
可以分为三个主要组件:
- 分布式数据并行培训 (DDP)是一种广泛采用的单程序多数据培训范例。使用DDP,可以在每个流程上复制模型,并且每个模型副本都将获得一组不同的输入数据样本。DDP负责梯度通信,以保持模型副本同步,并使其与梯度计算重叠,以加快训练速度。
- 基于RPC的分布式培训 (RPC)旨在支持无法适应数据并行培训的常规培训结构,例如分布式管道并行性,参数服务器范式以及DDP与其他培训范式的组合。它有助于管理远程对象的生命周期,并将自动分级引擎扩展到机器范围之外。
- 集体通信 (c10d)库支持跨组内的进程发送张量。它提供了集体通信API(例如