Рендеринг на Blender Cycles на видеокартах Intel Arc (A770 16 Gb) и проблема Loading render Kernels
Доброго всем дня.
Данный пост нужен больше для владельцев видеокарт от Intel серии ARC (чтобы он гуглися при запросах), т.к. решает довольно неудобную проблему.
При работе в блендере и рендеринге на Cycles периодически можно столкнуться с проблемой, когда при рендеринге каждого кадра на GPU мы будем 15-30 секунд считать kernels-ы - (Loading render kernels (may take a few minutes the first time)
По идеи мы должны увидеть это 1 раз, после чего оно должно сохраниться где-то в кеше и никогда больше не запускаться (пока не обновятся драйвера видеокарты или сам блендер), однако на ARC видеокартах это может срабатывать при каждой попытке рендеринга, даже если мы рендерим анимацию - каждый последующий кадр будет считать Kernels-ы затрачивая лишние 15-30 секунд на каждый кадр. (оговорюсь что исключительно на Cycles рендере при рендеринге на GPU)
На версии блендера 3.6.5 это решилось само собой и хоть вначале были проблемы, потом всё стало работать как должно и больше никогда это не считалось, но на новой 4.0.1 пока эта проблема не пропала сама по крайней мере у меня (использую блендер со Steam-а, который самообновляется постоянно).
Собственно перерыв интернет, поспрашивая на форумах и поделав собственные тесты вот как удалось решить эту проблему:
В настройках (Edit -> Preferences -> System) увеличиваем Memory Cache limit на х2-х4 от того что стоит у вас (я установил на 16384) - на иностранных форумах некоторым помогало (но мне не помогло).
Я так же включил кэширование на диск, но не думаю что от этого есть какой-то серьёзный эффект. Имейте ввиду Cache Limit указан в Гб, поэтому установите подходящее для вас значение. Мне вполне не жалко 100 Гб, т.к. места вагон.
3. На нашей сцене, в разделе Render -> Perfomance -> Final Render выставляем галочку на Persistent Data (по умолчанию отключена)
После этого при рендеринге у нас один раз произойдет расчет Kernels-ов, как только мы запустим рендер, далее внутри этой сцены всё будет хорошо и мы не будем тратить лишнее время на подсчёты. Не важно как мы будем запускать рендер и какие настройки менять, после этого всё работает как должно и рендерится сразу, но при открытии другого файла, всё будет аналогично как и раньше.
Поэтому рекомендую сразу включить эту галочку в пустой сцене и сохранить изначальный файл.
Не сомневаюсь, что так же это поможет и владельцам карт Intel Arc A380 / A580 и A750 (A750 вообще на том же чипе) если такое на них встретится.
Спасибо за внимание. Надеюсь кому-то помог.
Сразу хотел добавить, что несмотря на то, что в OpenData очки у Intel Arc A770 в рендеринге не такие уж высокие (по очкам имеет отставание от 3060 на 15%), на реальных тестах (вроде рендеринга ClassRoom на Cycles) я получил что Arc A770 по скорости рендеринга на 3% быстрее 3070 (что в целом означает что при разных сценах они будут +- равны). В разрешение FullHD лидерство синей видеокарты может доходить до 17% в зависимости от сцены.
Разрешение 2560х1440 - 300 сэмплов.
A770 16-Gb reference ed. на oneAPI (с вкл. трассировкой лучей) -> 62.6 с.
Nvidia GeForce RTX 3070 на Optix -> 64.4 с.
Как-то так.
Blender RU
1.1K постов3.6K подписчика