Как измерить использование памяти графическим процессором модели TensorFlow - PullRequest
2 голосов
/ 07 января 2020

Моя цель - выяснить, сколько памяти GPU модель TensorFlow сохраняет в виде файла .pb во время вывода. Если ограничить значение per_process_gpu_memory_fraction значением 0,01 и успешно запустить модель на входном изображении, можно ожидать использования памяти 120 МБ (на основе графического процессора 12 000 МБ).

conf = tf.ConfigProto()
conf.gpu_options.per_process_gpu_memory_fraction=0.01
session = tf.Session(config=conf)

Когда я наблюдаю фактическое использование памяти GPU через nvidia-smi, я вижу использование 550MB. Основываясь на ответе здесь ({ ссылка }), я измеряю объем памяти по умолчанию, необходимый для создания сеанса TF, который составляет 150 МБ. Теперь вопрос в том, откуда берутся оставшиеся 550 МБ (измеренные) - 150 МБ (сеанс) - 120 МБ (модель) = 280 МБ. Я хочу исключить любые другие факторы, которые используют память графического процессора, и только количественно определить, сколько использует сама модель. Могу ли я просто принять 120 МБ в этом случае?

1 Ответ

1 голос
/ 07 января 2020

Попробуйте установить для TF_FORCE_GPU_ALLOW_GROWTH значение true, прежде чем запускать python код:

os.environ['TF_FORCE_GPU_ALLOW_GROWTH'] = 'true'

Поставьте это перед импортом тензорного потока.

Затем измерьте использование памяти графическим процессором. Также это зависит от распределителя памяти Tensorflow от того, как распределена память на GPU. Так что, как правило, он будет немного больше, чем фактическая модель в памяти.

Также попробуйте предложения, упомянутые здесь: Как ограничить использование памяти tenorflow GPU?

...