3d форум по Blender

Blender => Другое => Тема начата: chjohn от 24 Март 2021, 11:37:15

Название: Out of memory при визуализации с несколькими GPU
Отправлено: chjohn от 24 Март 2021, 11:37:15
Добрый день.
Windows 10 Pro (с включенным автообновлением).
Blender 2.92 (хотя версия особо не влияет)
GPU 2060 super 4 шт. (версия драйверов актуальная на данный момент) + GTX 750 для монитора.

Две карты подключен через 10 сантиметровый сайзер (pci-e x1) а две через сайзер выполненный "через USB провод" (полагаю тоже pci-e x1).

Выбор RTX или CUDA особо не влияет.

У меня сцены не большие, при визуализации Blender показывает использование памяти не больше 1 Гигабайта (GPU-Z и nvidia-smi похожие данные показывают).

Однако после нескольких запусков визуализации, выскакивает ошибка Out of memory или более развернутая ошибка, опять же связанная с "нехваткой памяти".

После того как в настройках Blender отключаю одну видео карта, визуализация запускается.
Через некоторое время опять может выскочить "Out of memory" и переключение карт возобновляет работу.

Бывает Blender при запуске рендера крашится.

Для того что бы запустить визуализацию на всех GPU приходится полностью выключать станцию и запускать заново.

Могут ли сайзеры влиять на работу GPU или причина в чем то ином ?
Название: Re: Out of memory при визуализации с несколькими GPU
Отправлено: Николай Николаев от 24 Март 2021, 14:56:47
Память видеоплат не суммируются и лимитируерся минимально доступной из всех устройств. .
Возможно в визуализации задействовано такое устройство. И как вариант - требуется его исключить.

       
Название: Re: Out of memory при визуализации с несколькими GPU
Отправлено: chjohn от 24 Март 2021, 16:31:26
Я указал что для визуализации используются только 2060 а там 8Gb памяти в каждой, из этого делаю вывод что проблема не в объеме памяти GPU устройств.

Одна и та же сцена может 29 раз запускается на визуализацию а на 30-ый раз выдать Out of memory.
Название: Re: Out of memory при визуализации с несколькими GPU
Отправлено: Николай Николаев от 24 Март 2021, 19:05:02
>> Одна и та же сцена может 29 раз запускается на визуализацию а на 30-ый раз выдать Out of memory.
... это похоже на утечку памяти ...
... такие проблемы плохо отлавливаются ...
... если есть возможность, выложи файл с моделью в сеть ...
Название: Re: Out of memory при визуализации с несколькими GPU
Отправлено: ThreeDancingFlies от 28 Март 2021, 11:27:49
Может конечно и утечка, но возможна аппаратная проблема  с памятью на одном из ГПУ -протестируй VMT
nvidia-smi  -l 1 и мониторь, в нормальном режиме и с ошибкой сравни может что-то покажет
на винде вообще лучше не рендерить ставь линукс без ГУИ будет быстрее
Название: Re: Out of memory при визуализации с несколькими GPU
Отправлено: chjohn от 31 Март 2021, 17:41:49
Добавил к установленной (8Гб) системной памяти еще 8Гб.
И как не странно, ошибка (Out of memory) практические исчезла.
Иногда появляется, когда во viewport включен рендер и пытаюсь запустить "основной" рендер, после выключения превью рендера, всё запускается.

Что интересно, что до, что после установки памяти, диспетчер задач показывает что памяти используется не больше 5Гб.
Название: Re: Out of memory при визуализации с несколькими GPU
Отправлено: Николай Николаев от 31 Март 2021, 20:17:27
... а что показывают средства мониторинга памяти при визуализации? до и после сообщения об ошибке? ...
Название: Re: Out of memory при визуализации с несколькими GPU
Отправлено: chjohn от 01 Апрель 2021, 11:04:37
До начала визуализации (запуск blender-а сразу после запуска системы)
(http://public.archgorod.ru/blender_debug/step01.png)
В процессе визуализации
(http://public.archgorod.ru/blender_debug/step02.png)
Загруженность GPU
(http://public.archgorod.ru/blender_debug/step03.png)

Что странно nvidia-smi показывает загрузку GPU 100% а диспетчер задач показывает 1-3% кроме одного GPU.
Название: Re: Out of memory при визуализации с несколькими GPU
Отправлено: Николай Николаев от 01 Апрель 2021, 14:17:55
... то есть очевидных проблем с нехваткой памяти нет ...
... выкладывай файл с моделью для тестирования ...
Название: Re: Out of memory при визуализации с несколькими GPU
Отправлено: chjohn от 12 Февраль 2022, 15:19:31
По пришествию времени, образовались такие мысли:

При запуске визуализации, Cycle подготавливает данные ("упаковывает") для отправки в GPU. Однако в общем случае предполагается что GPU\драйверы могут быть разные и по сути Cycle подготавливает данные для каждой GPU свой комплект данных, даже если все GPU абсолютно одинаковые.

Т.е. сцена которая вести 2G и отправляется на 4 GPU, "съедает" 8GB системной памяти.

Так же есть предположение что эти данные копируются из RAM в GPU напрямую "минуя" CPU, через PCIe, поэтому все нужно хранить в системной памяти и как следствие файл подкачки роли не играет.

И как результирующее предположение - если в системе N GPU с M Gb RAM то нужно иметь N*M Gb системной памяти.

На данный момент в станции установлено 64Gb RAM, являются ли вывод верные не знаю, но на данный момент проблемы с Out of memory не проявляются.
Название: Re: Out of memory при визуализации с несколькими GPU
Отправлено: Samovar от 12 Февраль 2022, 15:52:03
chjohn, все текстуры должны быть размером степени двойки, ...256х256, 512х512, 1024х1024, 2048х2048 ... а если, допустим, у тебя текстура 1025х513, то она будет занимать видеопамяти 2048х2048, если я ничего не путаю... плюс ещё видюха их мип-маппит. Для текстуры 1024х1024 в видеопамяти создаются её уменьшенные копии: 512х512, 256х256, 128х128, 64х64, 32х32, 16х16, 8х8, 4х4 и 2х2... всё это и жрёт видеопамять... сама геометрия жрёт видиопамяти гораздо меньше... скорость рендеринга зависит от частоты вызовов отрисовки draw сalls. Чем их меньше, тем быстрее рендеринг. Поэтому создают текстурные атласы для нескольких объектов, куда запекают все их текстуры, чтобы уменьшить количество вызовов и ускорить рендеринг...сжиамют чёрнобелые и текстуру нормалей для PBR шейдинга и старого, в одну цветную, используя каналы RGBA...
https://habr.com/ru/post/206386/ (https://habr.com/ru/post/206386/)
https://habr.com/ru/post/206386/ (https://habr.com/ru/post/206386/)
Название: Re: Out of memory при визуализации с несколькими GPU
Отправлено: Николай Николаев от 12 Февраль 2022, 17:19:34
>>И как результирующее предположение - если в системе N GPU с M Gb RAM то нужно иметь N*M Gb системной памяти.
Думаю стоит учесть, что память устройств GPU не суммируется (да,да, не суммируется), а лимитируется по наименьшему из доступных значений.