January 30th, 2013

Willyam Bradberry фотография

Blender 2.65. Шейдер кофе, CUDA, GPU vs CPU, сравнительный рендер в CYCLES.

Заморочил тут небольшой тест кофейных-шоколадных-жидкостей и плюхов-сплэшей и рендера в блэндере посмотреть на движок.

UPD: Краткий вывод - время рендера CYCLES на движке GPU примерно в 60 (!!!) раз быстрее рендера на CPU (тех инфо на нижней картинке), те. NVIDIA CUDA рулит!

Для теста выбрал небольшой размер изображения 500х500.
Настроил шейдер для "кофе", настраивал около 5 минут, поэтому никаких наворотов и тонкостей - пользователям 3DSmax+VRAY пламенный привет и "гудбай", помню, чтобы настроить хоть какое-то жалкое подобие такого шейдера мне понадобилось около недели ковыряния в VRAY и дикое количество тестовых рендеров, а тут все в риалтайме прямо на глазах.

И так, победитель (предыдущего) соревнования: 8 threads (4cores) CPU

Время рендера картинки 3 минуты 23 секунды.
Кстати я ещё потом выиграл 3 секунды, отключив нахрен CUDA в настройках (CTRL+U) и поставив в качестве Compute device: none = CPU.
получилось 3 минуты 20 секунд.

Конечно же тем, кто никогда не рендерил секвенции по несколько часов фиг объяснишь, что даже 3 секунды выигрыша это очень существенно.

-----------------

CPU + Open Shading Language:
Collapse )

Вообще к нодовой структуре привык очень быстро - за уши не оттащишь теперь, даже залез поковыряться в NUKE, только там интерфейс унылый и убогий и ноды просто корявые и угловатые по сравнению с аккуратненьким блэндером, хотя на мощь программы это конечно не влияет.

В качестве ИС используется простая HDR-ка на окружение, плюс сам фон излучает всей поверхностью - виртуальная студия делается за 1 минуту.

Поставил на тест картинку 3к на 3к, посмотрим насколько 0.25 мегапиксела против 9 круче =)
Как-то так.

UPD: спасибо korchy и Эндрю Прайсу за наводку, ха! Переключил обратно на GPU, установил размер TILES вместо 8 по умолчанию, аж 1024 (ну а фигли мелочиться ;) у меня карта должна позволять)
увеличил размер картинки вместо 500 до 1000 по стороне, получил скорость... внимание 1 минута 45 секунд!!!

Увеличил количество сэмплов трэйсов с 96 до 256
При размере тайла 1024 время рендера 4:04
При размере тайла 2048 время рендере 3:48
При размере тайла 512 время рендере 3:37 (хм... что я делаю не так)
При размере тайла 256 время рендере 4:04 (хм... оп-па, гангман стайл)


UPD2: после непродолжительного (что очень приятно) теста выяснил истинного победителя, это всё-таки движок на GPU


Поскольку рендерится ОЧЕНЬ БЫСТРО, я уже не стал жадничать и, чтобы получить гладенькую картиночку, вдул вместо 96 сэмплов - 256 (хотя можно и ещё смело добавить.)
Оказалось, что максимальную эффективность в данном примере обеспечивает размер TILES = 512 (по умолчанию установлено 8)

Кароч, NVIDIA и CUDA рулит. Процессорный движок рендерил на 8 потоках более 10 часов (я успел выспаться)
А с GPU это всё отрендерилось за 25 минут (при увеличенном количестве сэмплов)

Кстати, сейчас поставлю снова 96 и посмотрю точную разницу.
UPD: разница почти в 60 раз.