Страница 1 из 1

Сравнение рендера в Cycles на CPU, GPU и CPU+GPU в Blender 2.80 Beta

Сообщение #1Добавлено: 22.01.2019, 18:33
max6312
Неделю назад на старом «Blender Украине» я написал о результатах небольших опытов на двух графических станциях (простаивающих в это время на работе) по сравнению времени и стабильности рендеров нескольких сцен в различных версиях Blender (2.79b , январских ежедневках 2.79 и 2.80), но позже осознал, что упустил важный момент в своих оценках, а именно - влияние изменения размера плитки на время рендера. Посему, решено было провести более глубокие исследования, но уже с меньшим количеством сцен, когда оборудование вновь освободиться. Такой момент выпал в прошлую пятницу. Чем я и воспользовался. Были взяты две сцены. Одна (назовём ее сцена 1) - низкополигональный интерьер цехового здания (кадр из видео пролета по помещениям здания).

Изображение
Сцена 1
Вторая – так же кадр из видео – разрез технологического здания на прозрачном фоне с большим количеством высокополигональных и прилинкованных объектов. Плюс присутствует Motion Blur. Назовем её - сцена 2.

Изображение
Сцена 2
Для рендера были использованы три машины: старенькая графическая станция с Win 7 на двенадцати поточном Xeon E5-22620 с графической системой на основе GTX -970 и 32 гигабайтами ОЗУ, относительно новая станция c Win 10 на двенадцати поточном I7 – 6800K c двумя картами GTX-1080 на борту и 32 гигабайтами ОЗУ, и моя домашняя машина c Win 10 на Ryzen 7 1700 с GTX 1070 и 32 гигабайтами ОЗУ. На первых двух я прогнал обе сцены, на последней – только одну вторую, так как первая была не доступна. Все результаты эксперимента я свел в таблицы и представил в виде графиков. Для более разносторонних исследований вторая машина прогонялась как с двумя, так и с одной видеокартой. Но перейдем к результатам.
1. Рендер сцены 1 с различным размером плитки на станции I7 – 6800K , 2х GTX-1080, 32 Гбт:

Изображение
Использовались последовательно все три режима рендера: CPU, GPU и CPU+GPU. К сожалению, CPU рендер проработал только для больших значений размера плитки (более 64х64), при дальнейшем уменьшении машина стабильно вылетала в перезагрузку, так что произвести рендер не удалось. Данный провал я связываю исключительно с Win 10 и его не корректной работой с памятью на данной машине (впоследствии то же самое выявилось и на моей домашней машине с Ryzen 7). Как не странно, но рендер CPU+GPU прошел более успешно и провалился лишь на одном значении размера плитки – 64х64. Хотя, именно оно, судя по интерполяции графика, было самым производительным. Но в любом случае, на данной машине и в данной конфигурации рендер CPU+GPU явно не имеет никакого практического смысла. Он всегда будет медленнее чистого GPU рендера, а наилучшая производительность обеспечивается GPU рендером на максимально размере плитки 240х216. Обратите внимание, что в данной конфигурации чисто GPU рендер производительнее CPU рендера в среднем в 6,8 раза (среднее арифметическое от всех замеров). Судя по всему, данный параметр проще всего применить для оценки перспективности использования рендера CPU+GPU на конкретной машине.
Снизим этот параметр, отключив одну из видеокарт в связке:

Изображение
Среднее отношение производительности CPU и GPU снизилось до 3,6 раза. И мы видим, наконец-то, что связка CPU+GPU дала хотя и не значительный, но выигрыш при размере плитки от 64х64 до 32х32. Максимальный прирост производительности (на 64х32) составил 8%. Стоит ли этот прирост значительной потери стабильности (за время эксперимента у меня были десятки «вылетов» и перезапусков) - решать вам. А я продолжу.
Аналогичные исследования на этой графической станции я провел со второй сценой:

Изображение

Изображение
Результаты оказались ожидаемыми. С двумя GPU станция так же делала режим GPU+CPU бесполезным. В случае же с одной отключенной картой преимущество данного режима вновь проявилось при размерах плитки 64х64 и менее. Максимальный прирост производительности по отношению к чистому GPU (на плитке 32х32) составил 12,3%.
Перейдем к более старой машине - Xeon E5-22620, GTX -970, 32 Гбт под управлением Win 7 и повторим все те же действия:

Изображение

Изображение
По результатам рендера видно, что производительность процессора при рендере в среднем в 2,16 раза ниже производительности видеокарты. При этом прирост скорости рендера в режиме CPU+GPU по отношению к «чистому» GPU для первой сцены составил 15,9%, для второй – 7,6%. Машина несколько раз подвисала на несколько секунд и выдавала белый экран, но после паузы обновляла экран и продолжала работу. Наилучшая производительность для первой сцены оказалась при размере плитки 120х108, а второй - 16х16.
На мой домашний компьютер удалось «пронести» только сцену 2. Данная машина отличается процессором Ryzen 1700, который, как известно, прекрасно показывает себя в многопоточности. В качестве видеокарты использована далеко не самая мощная GTX 1070. Поэтому, как я надеялся, соотношение производительности процессора и видеосистемы в этот раз должно еще более сместится в сторону процессора. По моим прикидкам разница должна была оставить 1.5 -1.8 раза. Но получить более-менее точное значение так и не удалось, так как пресловутый лицензионный Win 10, установленный на этот компьютер, обычно приводил к полному зависанию системы при попытке CPU рендера, не смотря на все обновления драйверов и биоса . Единственное значение размера плитки, которое удалось отрендерить – 240х216, и то не с первой попытки. Как показывает статистика работы с другими компьютерами, это, пожалуй, худшее разрешение для CPU, но даже на нем разница в производительности составила всего 2,16 раза. Интерполируя предыдущие графики, думаю, реально средняя разница в производительности не должна быть более 1,7. Следовательно ожидаемо, что на данной машине выигрыш от рендера CPU+GPU должен был быть еще больше. Реальные рендеры это предположение полностью подтвердили.

Изображение
Выигрыш в производительности по отношению к GPU рендеру составил 49%. При чем опять же на малых размерах плитки - чем меньше, тем лучше.
Какие выводы можно сделать из данной статистики?
1. Сносите к черту Win 10. По крайней мере сейчас она еще далека от стабильности.
2. Использовать рендер GPU+CPU имеет смысл лишь тогда, когда соотношение производительности видеосистемы и процессора менее 5.
3. При работе с рендером GPU+CPU размер плиток нужно ставить меньше, чем для GPU рендера, как правило в районе 64х64 – 16х16.
4. Экономически оптимальным вариантом для графической системы с наилучшим соотношением цена – производительность) является комплект из процессора Ryzen (3 – 7) и видеокарты от Nvidia с достаточным объемом видеопамяти на борту (4 Gbt и более), к Ryzen 2600 и Gtx 1050, 1060, 1070… и ОС Linux ( Ryzen не поддерживает Win7)
Ну и последнее – заодно погонял Еву во время тестов. Пока, кроме использования единой с Cycles системы текстуриррования, никаких практических позывов к ее использованию не увидел. Картинка на столько отлична от цикловской, что становиться не пригодной для настройки тех же материалов. Итог – все равно приходиться гонять циклы не по разу для тонких подстроек. Вот пример приведенных выше кадров, отрендеренных в Еве. Ни теней нормальных, ни качественной передачи сложных текстур с дисплейсом и полутонов.


Изображение

Изображение

Сообщение #2Добавлено: 22.01.2019, 19:39
grayich
вывод:
нужна раздельная настройка для CPU и GPU размеров плитки, а может даже для каждого устройства
а ещё лучше с автоматической мозаичной системой разбиения приближённо к заданному размеру плитки

Сообщение #3Добавлено: 22.01.2019, 21:05
SergeV
Сносите к черту Win 10. По крайней мере сейчас она еще далека от стабильности.
Странное утверждение, опирающееся лишь на собственный опыт. То что у вас система барахлит, ещё не значит что она не стабильна, возможно у вас в системе какие другие проблемы, софтверные или железные...
У меня 2 компа на 10-ке, один старый с амд фх8350 + гтх970 + 16гиктар памяти, установка 10-ки была поверх 7-ки, лицензия. И один новый комп на на амд 2200г, со встроенной вега 8 графой + 8гиктар памяти, из которых 2 отведено под крафику, с оем лицензионкой 10-ки, установленной начисто.
Ренедерил в хвост и в гриву на обоих компах, как чисто на графе или проце, так и на сборке 2.79 с поддержкой совместного рендера, как и на 2.80 в том же совместном режиме.
И не одной проблемы 10-й винды с зависанием или прочим, всё стабильно, даже стабильней чем 7-ка была.
Единственно бывают случаи вылета CUDA дров при рендере, если сцена оч тяжёлая, но это проблема дров, а не винды.

Что касается рендера GPU+CPU, то на моём старом компе это не даёт прироста производительности, по крайней мере не давало когда я в прошлом году это тестил. На новом компе небольшой прирост есть, этак 10%, но это в 2.80 версии.

Вообще, совместный рендер GPU+CPU, не совсем нормальное решение, в том виде как оно сейчас есть. График карты луше рендерят на большой плитке, а проц на мелкой, и попытка привести плитку к одному размеру, просто ухудшает рендер чего то одного, или в общем всего, и как результат прироста либо нет, либо незначительный.

Сообщение #4Добавлено: 23.01.2019, 04:06
max6312
Странное утверждение, опирающееся лишь на собственный опыт. То что у вас система барахлит, ещё не значит что она не стабильна, возможно у вас в системе какие другие проблемы, софтверные или железные...
Это скорее "крик души" - так меня эта десятка уже достала. На рабочей графической станции стоит 10 ка с обновлениями лишь до октября 2017 года (когда машина была поставлена в отдел), так как инет в организации запрещен и обновления невозможны. Драйверы на ее железо датированы вообще маем 2016 года и с тех пор поддержки нет (мать Gigabyte X99). Блен 2.79б на ней работал без проблем, а вот последняя сборка 2.8 - глючит беспрерывно в рендере. Так кто виноват - железо, система (которая его хреново поддерживает) или блен? С домашней машиной еще интереснее. Изначально на ней стояли Win 10 лицензия и Минт через загрузочное меню. Минт использовался чисто для рендера, так как то, что рендер в лине куда быстрее (процентов на 16 на моей машине в любом режиме) - давно доказанный факт. Но после обновлений - которые я сдуру сразу не заблокировал, а у 10-ки они валятся постоянно, она сперва заблокировала мне линь - просто вместо запуска загрузочного меню сразу стала запускаться 10 ка. Попытка вновь наладить загрузку привела к краху системы - пришлось восстанавливать из точки восстановления. Пришло очередное обновление и, о чудо, меню вновь появилось. Но радовался не долго. Месяц меня не было - ездил в отпуск, вернулся - свалились взахлеб десятки обнов и меню вновь исчезло. И начались какие - то чудеса с стабильностью. Вылетают игры, вылетает Блен. При этом наблюдаются постоянные "затыки" в работе с видеопамятью - экран то и дело "подвисает", пока не зависает окончательно. Причем происходит это исключительно при рендере на CPU и CPU+GPU. Постоянно обновляю все драйверы и биос мамки, как только выходят новые - только хуже стало...

Сообщение #5Добавлено: 23.01.2019, 10:21
SergeV
Не спорю что у 10ки есть проблемы(а у какой системы их нет), в сети полно статей на тему тех или иных проблем, но они в основном связаны с компами тех или иных производителей, то есть на готовых компах. Всё сводится к тому, что там простые не стыковки винды, со старым софтом от производителя, в большинстве своём.

На рабочей графической станции стоит 10 ка с обновлениями лишь до октября 2017 года (когда машина была поставлена в отдел), так как инет в организации запрещен и обновления невозможны. Драйверы на ее железо датированы вообще маем 2016 года и с тех пор поддержки нет (мать Gigabyte X99). Блен 2.79б на ней работал без проблем, а вот последняя сборка 2.8 - глючит беспрерывно в рендере.
Ну так и будет, старые дрова + система без обнов, + новый, пока ещё глючный софт, который быстрей всего не особо и тестировался на старых дровах и т.д.. Подождите стабильной версии 2.80, может всё и устаканится.

При этом наблюдаются постоянные "затыки" в работе с видеопамятью - экран то и дело "подвисает"
Ну..., это вообще то видеокарта, либо дрова под неё, эта проблема к винде дела не имеет.

Что касается GRUB загрузчика, тут спорить не буду, винда может убить его при обновлении, но это бывало и в прошлом, на ХР и 7-ке, так что тут не конкретно 10-ка виновата, а криворукие разрабы, либо они это спецом делают, что бы насолить линуксоводам, что обе системы держат. Фиг их знает что там на самом деле...

ПС. У меня наоборот была проблема с линукс минт, полтора месяца система стояла на новом компе, зависания системы по 10 раз на день достали так, что купил оем версию винды, и о чудо, всё пашет без проблем и глюков...


Чисто для интереса, у вас я так думаю компы готовые покупались, не самосборка? Хотя даже если последнее, судя по описанным проблемам, возможно железо было не очень хорошо подобрано.
Ну..., из собственного опыта в прошлом, после того как я перестал лезть в систему со своими тонкими настройками, по всяким статьям из сети, система работает как часы. Раньше бывало по несколько раз на месяц переустанавливал систему, но с 7-ки, после года таких настроек, больше не лезу не куда особо, ток самое важное, и с того времени, я уже и забыл что такое переустановка, синие экраны и прочие глюки системы.

Сообщение #6Добавлено: 23.01.2019, 16:34
max6312
Чисто для интереса, у вас я так думаю компы готовые покупались, не самосборка?
Все машины заводской сборки и настройки "под ключ". Правда, последняя действительно была собрана безобразно - пришлось срывать пломбы и переделывать. Так видеосистему пришлось уменьшить на одну карту (изначально стояли 3 GTX 1080) так как из-за тесноты и отвратной вентиляции карты перегревались и машина стабильно висла под нагрузкой. Но с тех пор все работало как часы, пока не поставил 2.8.
а у какой системы их нет
До этого много лет был AMD 8350 с 7 кой и не единого сбоя за все время - как часы все работало, до сих пор жена радуется - отдал ей ту машинку. А с 10 кой с первого дня не заладилось. Что касается Минта, то с ним проблем то же не было - когда еще GRUB работал, все летало без проблем... Так что вопрос либо в системе, либо в драйверах.

Сообщение #7Добавлено: 24.01.2019, 11:11
SergeV
Ну, как я и предполагал, компы заводской сборки, а с ними то и основные проблемы всегда были, так как в таких компах, чем они дешевле, тем хуже железо и поддержка. Я раньше занимался сборкой и ремонтом компов, знаю о чём говорю, даже у этаких контор с именем, часто ставят железо не первой свежести, отбраковку и прочий хлам, то что не пошло в розницу. Как результат такие компы часто и 2-х лет не отрабатывали, дохли даже через пол года работы, и это на рынке Германии. Ко всему этому, все эти производители ставят на свои компы кучу не нужного софта, который висит в фоне и жрёт ресурсы, и многие даже не догадываются о нём. Ну и свои дрова идут так же в придачу, которые обновляются редко или вообще нет, от сюда и возникают проблемы с работой системы... Почитайте в сети, народ жалуется на винду на компах и лептопах от именитых производителей, таких как ASUS, HP, Lenovo и прочих, постоянно какие то глюки с виндой, по причине дров и прочего софта от этих контор. И я практически не видал жалоб на самосборы, если конечно они не собраны из какого левого железа, и не понаставлено что попало из дров.

Вообще, подбивая итоги, даже опуская то что компы заводские, у вас основная проблема ток с 2.80, учитывая это - "Блен 2.79б на ней работал без проблем, а вот последняя сборка 2.8 - глючит беспрерывно в рендере.", и это - "Но с тех пор все работало как часы, пока не поставил 2.8.". То есть проблема всё же не столько с виндой, как с блендером 2.80, но чего тут то ждать, блен то ещё в разработке, имеет кучу багов, и не отшлифованного кода под винду.
ПС. Хотя сам я багов с нестабильностью не заметил, вчера рендерил в 2.80 разные мои старые сценки, от простых до тяжёлых, и не одной проблемы с ренедером, всё чётко отрендерило, без вылетов и зависаний, и ещё чего.

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

Сообщение #8Добавлено: 24.01.2019, 20:43
maleficmax
Интересное исследование. От себя скажу еще, что я насмотрелся в Иви уже такого, что фраза "непригодна" к ней относиться не может в принципе. Это движок, который просто иначе нужно настраивать, и тогда его будет результат практически неотличим от других рендеров. Он требует больше времени на настройку, но реалтаймовый рендеринг окупает его сполна.

Сообщение #9Добавлено: 09.02.2019, 13:38
max6312
Пришло неожиданное продолжение истории. При очередном техобслуживании на моей рабочей станции пресловутую десятку наконец то снесли и поменяли на WIN 7. И свершилось чудо - отныне 100% стабильность системы в любом режиме... Для эксперимента повторил старые рендеры. Графики приводить не буду. Скажу лишь, что теперь все тесты проходят "на ура", но рендер на GPU стал чуть быстрее (буквально на пару сек.) а на камне и GPU+CPU - медленнее... но то же чуть-чуть. Я даже посчитал это обычной погрешностью. Но уж больно она стабильна...

Сообщение #10Добавлено: 09.02.2019, 14:04
andreymal
Ну, ставить вин10 без доступа в инет - определённо плохая идея, уж слишком она любит обновления :) Лично у меня вин10 тоже работает вполне стабильно везде где ставил (впрочем, и на GPU я рендерю мягко говоря редко)