Pytorch 分布式训练
【摘要】
torch.distributed 包支持
Pytorch 分布式目前只支持 Linux
Pytorch 中通过 torch.distributed 包提供分布式支持,包括 GPU 和 CPU 的分布式训练支持。。
在此之前,torch.nn.DataParalle...
torch.distributed 包支持
Pytorch
分布式目前只支持 Linux
Pytorch
中通过 torch.distributed
包提供分布式支持,包括 GPU
和 CPU
的分布式训练支持。。
在此之前,torch.nn.DataParallel
已经提供数据并行的支持,但是其不支持多机分布式训练,且底层实现相较于 distributed
的接口,有些许不足。
torch.distributed
的优势如下:
- 每个进程对应一个独立的训练过程,且只对梯度等少量数据进行信息交换。
在每次迭代中,每个进程具有自己的 optimizer
,并独立完成所有的优化步骤,进程内与一般的训练无异。
在各进程梯度计算完成之后,各进程需要将梯度进行汇总平均,然后再由 rank=0
的进程,将其 broadcast
到所有进程。之后,各进程用该梯度来更新参数。
由于各进程中的模型,初始参数一致 (初始时刻进行一次 broadcast
),而每次用于更新参数的梯度也一致,因此,各进程的模型参数始终保持一致。
而在 DataParallel
中,全程维护一个 optimizer
,对各 GPU
文章来源: blog.csdn.net,作者:网奇,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/jacke121/article/details/105956268
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)