Pytorch: как узнать, действительно ли используется используемая память графического процессора или есть утечка памяти - PullRequest
1 голос
/ 26 мая 2020

У меня 3 Tesla V100 (16 Гб). Я выполняю переносное обучение, используя efficeint net (63 миллиона параметров) на изображениях (512 512) с размером пакета 20. Использование памяти моего графического процессора ниже - введите описание изображения здесь

Как видите, он почти заполнил все 3 GPU (почти 80%). Мой вопрос: есть ли какой-либо теоретический способ рассчитать, что использование отображаемой памяти графического процессора - это то, что требуется для модели при определенном изображении и размере пакета, или есть ли утечка памяти в моем графическом процессоре?

1 Ответ

1 голос
/ 26 мая 2020

Я не уверен, что это то, о чем вы просили, но пробовали ли вы сделать что-то вроде:

memory_usage = number_of_variables * memory_usage_per_variable.

Итак, если вы используете torch.float32 тензоры, и у вас есть 125 000 переменных, отправленных на графический процессор с .cuda(). Тогда вы используете 4 Гбайт памяти на своем графическом процессоре. Вы можете сравнить с тем, сколько памяти у вас доступно в вашей памяти.

Еще одна проверка работоспособности - это проверка использования памяти графическим процессором для каждой итерации вашей модели. Если оно удваивается, значит, у вас утечка памяти.

Надеюсь, это поможет.

...