Pytorch 单机多GPU训练 DataParallel和DistributedDataParallel

1、DataParallel原理

 2、DataParallel使用

os.environ['CUDA_VISIBLE_DEVICES'] = '2, 7'  # 设置可见GPU编号
# device_ids=range(torch.cuda.device_count())  # torch.cuda.device_count()=2
# device_ids=[0,1] 这里的0 就是上述指定 2,是默认主gpu,  1就是7,模型和数据由主gpu分发

model = Model(...)
if torch.cuda.device_count() > 1:
  model = nn.DataParallel(model)

device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
model.to(device)  # cuda:0将为主gpu
# 以上两行可以用model.cuda()代替,默认cuda:0为主gpu

...

mytensor = my_tensor.to(device)

3、使用DataParallel的模型保存与加载:

https://www.cnblogs.com/wildkid1024/p/13025352.html

4、DistributedDataParallel单机多gpu训练与模型保存加载:

(文中代码里有少许bug):​​​​​​​​​​​​​​​​​​​​​

Multi-GPU Computing with Pytorch (Draft) (srijithr.gitlab.io)​​​​​​

参考:

pytorch 多GPU训练总结(DataParallel的使用)_不忘初心不动摇-CSDN博客_pytorch多gpu训练

Optional: Data Parallelism — PyTorch Tutorials 1.10.0+cu102 documentation

pytorch多gpu并行训练 - 知乎

你可能感兴趣的:(pytorch,pytorch,深度学习)