我正在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 链接器:6.0.0 库比: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预期输出。