GPU RAM使用cupy的内存碎片?

时间:2019-06-25 05:25:26

标签: nvidia autoencoder unsupervised-learning chainer cupy

我正在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预期输出。

0 个答案:

没有答案