我正在 CPU 上训练 VAE 模型,它在 1 个时期内运行良好,因为我需要对其进行更多训练才能使用 GPU 获得良好的结果,我尝试在 GPU 上进行训练,但内存不足。因为,CPU 需要 25.375 GB 内存。当它被清除 GPU 内存为 12 GB 时,它会抛出内存不足。所以现在,我将代码转移到具有 8 gpu (12 * 8 GB) 内存的更大实例。因此,相应地应该解决内存不足的问题,而是将所有占用的内存从 1 gpu 复制到所有 8 GPU。因此,使用多个 GPU 是没有用的。
我发现完成整个训练的总内存是 25.375 GB。因此,使用 12 GB 的单个 GPU 会导致内存不足。现在,我使用每个 12 GB 的 8 个 GPU 来解决这个问题。
GPU:K80 Chainer:6.0.0 Cupy:6.0.0
avg_elbo_loss.to_gpu()
上面的代码在 12Gb 中占用了大约 8GB 的内存。反正有没有减少它或写它减少它?
我尝试使用多个 GPU 来解决这个问题。
num_gpus =8
if num_gpus > 0:
updater = training.updater.ParallelUpdater(
train_iter,
optimizer,
devices={('main' if device == 0 else str(device)): device for
device in range(num_gpus)},
)
else:
updater = training.updater.StandardUpdater(train_iter, optimizer,
device=args.gpus)
预期使用单个 GPU 的输出。