3d форум по Blender
Blender => Другое => Тема начата: 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 или причина в чем то ином ?
-
Память видеоплат не суммируются и лимитируерся минимально доступной из всех устройств. .
Возможно в визуализации задействовано такое устройство. И как вариант - требуется его исключить.
-
Я указал что для визуализации используются только 2060 а там 8Gb памяти в каждой, из этого делаю вывод что проблема не в объеме памяти GPU устройств.
Одна и та же сцена может 29 раз запускается на визуализацию а на 30-ый раз выдать Out of memory.
-
>> Одна и та же сцена может 29 раз запускается на визуализацию а на 30-ый раз выдать Out of memory.
... это похоже на утечку памяти ...
... такие проблемы плохо отлавливаются ...
... если есть возможность, выложи файл с моделью в сеть ...
-
Может конечно и утечка, но возможна аппаратная проблема с памятью на одном из ГПУ -протестируй VMT
nvidia-smi -l 1 и мониторь, в нормальном режиме и с ошибкой сравни может что-то покажет
на винде вообще лучше не рендерить ставь линукс без ГУИ будет быстрее
-
Добавил к установленной (8Гб) системной памяти еще 8Гб.
И как не странно, ошибка (Out of memory) практические исчезла.
Иногда появляется, когда во viewport включен рендер и пытаюсь запустить "основной" рендер, после выключения превью рендера, всё запускается.
Что интересно, что до, что после установки памяти, диспетчер задач показывает что памяти используется не больше 5Гб.
-
... а что показывают средства мониторинга памяти при визуализации? до и после сообщения об ошибке? ...
-
До начала визуализации (запуск 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.
-
... то есть очевидных проблем с нехваткой памяти нет ...
... выкладывай файл с моделью для тестирования ...
-
По пришествию времени, образовались такие мысли:
При запуске визуализации, 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 не проявляются.
-
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/)
-
>>И как результирующее предположение - если в системе N GPU с M Gb RAM то нужно иметь N*M Gb системной памяти.
Думаю стоит учесть, что память устройств GPU не суммируется (да,да, не суммируется), а лимитируется по наименьшему из доступных значений.