LINUX.ORG.RU

История изменений

Исправление 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 просто создал условия для проявления.

И причем тут ГП?

Что такое ГП?