История изменений
Исправление robus, (текущая версия) :
Что за ГТТ?
GttMemory — это память, которая динамически выделяется из RAM для GPU. Она используется по большей части тогда, когда своей памяти GPU не хватает (хотя в вулкане можно явно выделить память именно в GTT — там в явном виде есть несколько куч — чаще всего «своя» память gpu-шки и gtt память, но бывает и больше). За выделение gtt памяти отвечает модуль ядра и соответственно аллоцирует эту память от имени ядра. Таким образом запустив програму, выделяющую большое количество VRAM, можно получить ситуацию, когда ядро выжрало 2, 4, 8 Gb, а то и больше. В этом случае запуск echo 3 > /proc/sys/vm/drop_caches
(для сохранности данных лучше сначала sync
вызвать) от рута высвободит всю неиспользуемую GTT память. НО! Каким-то образом, мне неизвестным, приложение может держать GTT память даже после того, как полностью остановленно (соответственно такая GTT память не высвободится до самой перезагрузки/выгрузки модуля gpu). Этими утечками одно время грешил dxvk под интелом (при чем, что интересно, на других вендорах всё ок). Дело там, кстати, было в ядерном баге, а dxvk просто создал условия для проявления, так что, скорее всего, приложение не может держать GTT память после своего завершения (это было бы логично).
И причем тут ГП?
Что такое ГП?
Исходная версия robus, :
Что за ГТТ?
GttMemory — это память, которая динамически выделяется из RAM для GPU. Она используется по большей части тогда, когда своей памяти GPU не хватает (хотя в вулкане можно явно выделить память именно в GTT — там в явном виде есть несколько куч — чаще всего «своя» память gpu-шки и gtt память, но бывает и больше). За выделение gtt памяти отвечает модуль ядра и соответственно аллоцирует эту память от имени ядра. Таким образом запустив програму, выделяющую большое количество VRAM, можно получить ситуацию, когда ядро выжрало 2, 4, 8 Gb, а то и больше. В этом случае запуск echo 3 > /proc/sys/vm/drop_caches
(для сохранности данных лучше сначала sync
вызвать) от рута высвободит всю неиспользуемую GTT память. НО! Каким-то образом, мне неизвестным, приложение может держать GTT память даже после того, как полностью остановленно (соответственно такая GTT память не высвободится до самой перезагрузки/выгрузки модуля gpu). Этими утечками одно время грешил dxvk под интелом (при чем, что интересно, на других вендорах всё ок). Дело там, кстати, было в ядерном баге, а dxvk просто создал условия для проявления.
И причем тут ГП?
Что такое ГП?