pytorch multicpu分布式数据加载器(MPI)

问题描述 投票:0回答:1

我想知道是否有一种方法可以将数据加载器/数据集分发到许多CPU,即使使用单个GPU也是如此。具体来说,我想拥有一个Dataset类,并且__getitem__函数将分布在许多不同的CPU上(也许使用mpi吗?但是其他任何方式也都不错)。

谢谢

python mpi pytorch distributed-computing
1个回答
0
投票

您当然可以做到这一点,但请注意-由于通讯成本高昂,它对于一般的机器学习需求而言并不总是非常有效。使用DistributedDataParallel

实现基于以下内容的分布式数据并行性在模块级别的torch.distributed程序包。

此容器通过以下方式并行处理给定模块的应用程序:通过分块输入将输入分配到指定设备批次尺寸。该模块在每台计算机上复制设备,每个这样的副本处理输入的一部分。中向后通过时,将平均每个节点的梯度。

[在实践中,我建议您使用pytorch_lightning包,以减少一些需要编写的样板代码才能起作用。

参考:DistributedDataParallelpytorch_lightning

© www.soinside.com 2019 - 2024. All rights reserved.