torch.distributed.slaunch如何将数据分配给每个GPU



当我们的批量大小为1或2,并且我们有8个GPU时,torch.distributed.launch如何将数据分配给每个GPU?我将我的模型转换为torch.nn.parallel.DistributedDataParallel

model = DistributedDataParallel(model,
device_ids=[args.local_rank],
output_device=args.local_rank,
find_unused_parameters=True,
)

但它在文档中指出DistributedDataParallel:

通过通过在批次维度。

我的问题是,当批量大小小于GPU数量时,它如何处理?

它们没有。与Dataparallel不同,您设置的批处理大小是按GPU设置的。当您有8个批大小为1的GPU时,您的有效批大小为8。