Почему производительность графического процессора nvidia-smi низкая, хотя она не используется - PullRequest
1 голос
/ 13 марта 2019

Я новичок в обучении на основе GPU и в моделях глубокого обучения.Я использую cDCGAN (Conditonal DCGAN) в тензорном потоке на моих 2 графических процессорах Nvidia GTX 1080.Мой набор данных состоит из 320000 изображений с размерами классов 64 * 64 и 2350.Мой размер пакета очень маленький, т.е. 10, так как я столкнулся с ошибкой OOM (OOM при выделении тензора с формой [32,64,64,2351]) с большим размером batch_size.

Обучение идет очень медленно, насколько я понимаю, вплоть до размера партии (поправьте меня, если я ошибаюсь).Если я сделаю help -n 1 nvidia-smi, я получу следующий вывод.

enter image description here

В основном используется GPU:0, поскольку Volatile GPU-Util дает мне около 0% -65%, тогда как GPU:1 всегда 0% -3% макс.Производительность для GPU:0 всегда в P2, тогда как GPU:1 в основном P8 или иногда P2.У меня есть следующие вопросы.

1) Почему GPU: 1 не используется больше, чем текущее состояние, и почему он в основном имеет P8 Perf, хотя не используется?
2) Низкая скорость тренировочного процесса, вплоть до размера моей партии, или могут быть другие причины?
3) Как я могу улучшить производительность?4) Как можно избежать ошибки OOM с большим размером партии?

Редактировать 1:

Подробности модели следующие:

Генератор:

У меня есть 4 слоя (полностью подключены, UpSampling2d-conv2d, UpSampling2d-conv2d, conv2d).
W1 имеет форму [X + Y, 16 * 16 * 128], т. Е. (2450, 32768), w2 [3, 3, 128, 64], w3 [3, 3, 64, 32], w4 [[3, 3, 32, 1]] соответственно

Дискриминатор

Он имеет пять уровней (conv2d, conv2d, conv2d, conv2d, полностью подключен).
w1 [5, 5, X + Y, 64], т. Е. (5, 5, 2351, 64), w2 [3, 3, 64, 64], w3 [3, 3, 64, 128], w4 [2, 2, 128, 256], [16 * 16 * 256, 1] соответственно.

...