训练时如何为多个gpu分配不同的内存?

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

假设我有两个 GPU,GPU-0 和 GPU-1(它们是同一类型)。我希望在它们上训练一个简单的分类网络(例如 ResNet)。因为一些特殊的原因,希望GPU-0能带走更多的记忆

例如,考虑批大小设置为 64,我希望大约 40 批数据分配在 GPU-0 上,其余 24 批数据分配在 GPU-1 上。

我猜这不能通过 nn.DataParallel 或 nn.DistributedDataParallel 来完成,对吧?为此,我认为我需要手动将模型和数据复制到 GPU-0 和 GPU-1,然后将计算出的损失合并在一起。

我对 PyTorch 中的分布式训练很不熟悉,也找不到合适的教程。 here提出了一个相关的问题,但是目标是完全不同的。

谁能举个例子说明这个问题?先谢谢了。

pytorch gpu distributed-computing
© www.soinside.com 2019 - 2024. All rights reserved.