Pytorch 分布式训练(DP/DDP)

概念

PyTorch是非常流行的深度学习框架,它在主流框架中对于灵活性和易用性的平衡最好。

分布式训练根据并行策略的不同,可以分为模型并行和数据并行。

模型并行

模型并行主要应用于模型相比显存来说更大,一块 GPU 无法加载的场景,通过把模型切割为几个部分,分别加载到不同的 GPU 上,来进行训练

数据并行

这个是日常会应用的比较多的情况。即每个 GPU 复制一份模型,将一批样本分为多份分发到各个GPU模型并行计算。因为求导以及加和都是线性的,数据并行在数学上也有效。采用数据并行相当于加大了batch_size,得到更准确的梯度或者加速训练

常用的 API 有两个:

torch.nn.DataParallel(DP)

torch.nn.DistributedDataParallel(DDP)

DP 相比 DDP 使用起来更友好(代码少),但是 DDP 支持多机多卡,训练速度更快,而且负载相对要均衡一些。所以优先选用 DDP 吧。

参考

Pytorch 分布式训练(DP/DDP)_pytorch分布式训练_ytusdc的博客-CSDN博客

PyTorch分布式训练简明教程(2022更新版) - 知乎

Pytorch分布式训练 - 知乎

Pytorch多机多卡分布式训练 - 知乎

Pytorch - 多机多卡极简实现(附源码) - 知乎

相关推荐
闲人编程7 分钟前
Elasticsearch搜索引擎集成指南
python·elasticsearch·搜索引擎·jenkins·索引·副本·分片
Light607 分钟前
智链未来:彭山物流园区从物理基建到数据智能体的全维度构建方案
人工智能·系统架构·数字孪生·智慧物流·实施路径·彭山项目
AI资源库10 分钟前
GLM-4.7-Flash模型深入解析
人工智能·语言模型
痴儿哈哈16 分钟前
自动化机器学习(AutoML)库TPOT使用指南
jvm·数据库·python
花酒锄作田29 分钟前
SQLAlchemy中使用UPSERT
python·sqlalchemy
一切尽在,你来30 分钟前
1.2 LangChain 1.2.7 版本核心特性与升级点
人工智能·langchain
SoleMotive.30 分钟前
一个准程序员的健身日志:用算法调试我的增肌计划
python·程序员·健身·职业转型
LYFlied32 分钟前
AI大时代下前端跨端解决方案的现状与演进路径
前端·人工智能
深蓝电商API34 分钟前
图片验证码识别:pytesseract+opencv入门
人工智能·opencv·计算机视觉·pytesseract
.Katherine௰35 分钟前
AI数字人模拟面试机器人
人工智能