在多个分布式CPU上运行PyTorch数据加载器/数据集

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

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

谢谢

编辑我的标题被错误地编辑,我不打算分发模型本身,我只想分发模型的数据加载/解析

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

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

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

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

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

参考:DistributedDataParallelpytorch_lightning

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