Pytorch 实现 DistributedDataParallel 操作

一、DataParalle缺点

Pytorch单机多卡(GPU)运行的基本方法是使用torch.DataParlle()函数,具体操作参考:

其主要原理:假设有四个GPU,batch_size=64,input_dim为输入数据特征维度。nn.DataParallel() 将随机样本集(64, input_dim)分成四份输入到每个GPU。每个GPU处理(16, input_dim)的数据集(前向传播计算)。然后第一个GPU合并四份输出数据,并计算Loss(反向传播计算)。因此第一个GPU计算量大,负载不均衡。

官方也推荐DistributedDataParallel方法。

二、DistributedDataParallel 原理

待续ing

参考:

1、Distributed communication package - torch.distributed — PyTorch 1.11.0 documentation

2、pytorch/CONTRIBUTING.md at master · pytorch/pytorch · GitHubTensors and Dynamic neural networks in Python with strong GPU acceleration - pytorch/CONTRIBUTING.md at master · pytorch/pytorchhttps://github.com/pytorch/pytorch/blob/master/CONTRIBUTING.md

3、Pytorch 分布式训练 - 知乎个人整理,其中分布式代码均亲自验证过,可作为模板使用。 第一部分中,部分图片来自知乎提问部分,文中有链接,可以看更详细的讲解,侵删。 未经许可,严禁转载!!! 内容较多,整理的的有些乱,将就着看吧。 能…https://zhuanlan.zhihu.com/p/76638962

4、ring allreduce和tree allreduce的具体区别是什么? - 知乎知乎,中文互联网高质量的问答社区和创作者聚集的原创内容平台,于 2011 年 1 月正式上线,以「让人们更好的分享知识、经验和见解,找到自己的解答」为品牌使命。知乎凭借认真、专业、友善的社区氛围、独特的产品机制以及结构化和易获得的优质内容,聚集了中文互联网科技、商业、影视、时尚、文化等领域最具创造力的人群,已成为综合性、全品类、在诸多领域具有关键影响力的知识分享社区和创作者聚集的原创内容平台,建立起了以社区驱动的内容变现商业模式。https://www.zhihu.com/question/57799212/answer/612786337

5、

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值