GPU RAM Фрагментация памяти с использованием Cupy? - PullRequest
0 голосов
/ 25 июня 2019

Я тренирую модель VAE на процессоре, она хорошо работает в течение 1 эпохи, так как мне нужно больше тренироваться, чтобы получить хороший результат с использованием графического процессора, я пробовал тренироваться на графическом процессоре, но у него не хватает памяти. Поскольку процессор занимает 25,375 ГБ Память. Как очищается память GPU составляет 12 ГБ, она будет выбрасывать из памяти. Итак, теперь я переместил код в более крупные экземпляры, имеющие 8 ГП (12 * 8 ГБ) памяти. Так, соответственно, проблема Недостаточно памяти должно быть решено, вместо этого копируется вся занятая память с 1 GPU на все 8 графических процессоров. Так что использование Multiple GPU бесполезно.

Я нашел общий объем памяти для завершения всего обучения, который составляет 25,375 ГБ. Итак, использование одного графического процессора объемом 12 ГБ приведет к потере памяти. Теперь я использую 8 графических процессоров из каждых 12 ГБ для решения этой проблемы.

GPU: K80 Chainer: 6.0.0 Cupy: 6,0,0

avg_elbo_loss.to_gpu()

Код выше занимает около 8 ГБ памяти из 12 ГБ. Есть ли способ уменьшить или записать, чтобы оно уменьшилось?

Я попытался найти несколько 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)

Выход ожидается при использовании одного графического процессора.

...