Pytorch distributed overview
torch.distributed
包
v1.6.0后包括三个主要的部分:
1.Distributed Data-Parallel Training(DDP):单程序多数据训练范式。模型被复制到每个进程中,每个模型副本被提供一组不同的输入数据,并将其梯度计算累加以加快训练速度。(collective communications)
2.RPC-Based Distributed Training(RPC):支持不适合data-parallel training的一般训练结构,eg pipeline parallelism,parameter server paradigm,和DDP与其他训练范式的组合。(P2P)
3.Collective Communication(c10d):支持在一个组内不同进程间发送张量,即提供collective communication APIs (e.g., all_reduce and all_gather)和P2P communication APIs (e.g., send and isend)。DDP和RPC构建在c10d之上。特殊情况使用该API,分布式参数平均,即希望在反向传播之后计算所有模型副本的参数的平均值,而不是用DDP来传播梯度。
数据并行:
-单机多GPU,DataParallel可以在最小化代码修改的情况下加速训练;
-单机多GPU,DistributedDataParallel可以更进一步加快训练;
-多机DistributedDataParallel和启动脚本,如果程序要跨越机器边界延伸;
-使用torch.distributed.elastic来启动分布式训练,如果发生错误(out of memory)
data-parallel 也可以 Automatic Mixed Precision (AMP).
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律