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、

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