Как контролировать потребление памяти графического процессора в libtorch C++C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Как контролировать потребление памяти графического процессора в libtorch C++

Сообщение Anonymous »


Коротко о проблеме: у меня видеокарта RTX4090 с 24 ГБ видеопамяти. Я использую libtorch C++ v2.0.0 под Windows (MSVC). Когда у меня было 16 ГБ ОЗУ, моя программа работала нормально. Для простого примера обучения это занимало около 5 секунд на эпоху. При этом объем используемой памяти графического процессора составил около 6,6 ГБ. Кроме того, для 16 ГБ ОЗУ диспетчер Windows показал, что доступная память графического процессора составляет 24 + 8 = 32 ГБ, где 8 ГБ — это общая память графического процессора.

Когда я добавил еще 16 ГБ ОЗУ (теперь 32 ГБ ОЗУ), общий объем памяти графического процессора теперь составляет 24 + 16 = 40 ГБ, где 16 ГБ теперь представляют собой общую память графического процессора. И теперь при выполнении функции backward() используемая память графического процессора увеличивается с 4,4 ГБ до 38 ГБ, и после этого расчет эпох занимает очень долгое время (вместо 5 секунд около 7 мин).

Что можно сделать в этой ситуации? Как ограничить потребление памяти графического процессора CUDA или Torch?
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»