Tensorflow: GPU использует большую разницу при установке CUDA_VISIBLE_DIVICES на разные значения

Linux: Ubuntu 16.04.3 LTS (GNU/Linux 4.10.0-38-общий x86_64)

Tensorflow: компилировать из исходников, 1.4

Графический процессор: 4xP100

Я пробую новую выпущенную обучающую программу по обнаружению объектов. Я заметил, что есть большая разница, когда я устанавливаю CUDA_VISIBLE_DEVICES в другое значение. В частности, когда он установлен на «gpu: 0», утилита gpu довольно высока, например, 80–90%, но когда я устанавливаю ее для других устройств gpu, таких как gpu: 1, gpu: 2 и т. д. утилита gpu очень низка между 10%-30%.

Что касается скорости обучения, то она примерно такая же, намного быстрее, чем при использовании только ЦП.

Мне просто интересно, как это происходит.


person Xingdi    schedule 05.11.2017    source источник


Ответы (1)


Как упоминается в этом ответе, GPU-Util является мерой использования/бизнеса вычислений каждого графического процессора.

Я не эксперт, но по моему опыту GPU 0 обычно используется для большинства ваших процессов по умолчанию. CUDA_VISIBLE_DEVICES устанавливает графические процессоры, видимые процессами, которые вы запускаете на этом bash. Поэтому, установив для CUDA_VISIBLE_DEVICES значение gpu:1/2, вы заставите его работать на менее загруженных графических процессорах.

Более того, вы указали только 1 значение, теоретически у вас должно быть по одному на каждый GPU; есть вероятность, что вы смотрели только на GPU-util для GPU-0, что, конечно, уменьшится, если вы не используете.

person etal    schedule 05.06.2018