栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

PyTorch 分布式训练 (DP/DDP/torchrun/多机多卡) <笔记总结>

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

PyTorch 分布式训练 (DP/DDP/torchrun/多机多卡) <笔记总结>

1、DataParallel

device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
###	第一步:构建模型
'''
model 需要分发的模型
device_ids 可分发的gpu,默认分发到所有看见GPU(环境变量设置的)
output_device 结果输出设备 通常设置成逻辑gpu的第一个
'''

model = nn.DataParallel( model, device_ids=range(args.gpus), output_device=None)

### 第二步:数据迁移
inputs=inputs.to(device)	
labels=labels.to(device)	
#此处的device通常应为模型输出的output_device,否则无法计算loss

2、DistributedDataParallel

#运行方式一:(旧)
python -m torch.distributed.launch 
       --nnodes 1 
       --nproc_per_node=4 
       YourScript.py
# nnodes: 表示有多少个节点,可以通俗的理解为有多少台机器
# nproc_per_node 表示每个节点上有多少个进程,每个进程一般独占一块GPU


#运行方式二:
torchrun train_script.py #除了--use_env参数,其他torch.distributed.launch所使用的参数均可使用,
			 #如nnodes、nproc_per_node

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/997973.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号