Переезжаем на GPU Rendering, первый опыт(VrayRT 3.5 GPU).
Всем привет. За что мы любим 3д графику? За то, что она не дает заскучать, скорость появления новых технологий зашкаливает и нам нужно постоянно держаться на гребне волны, чтобы быть в теме. Мы можем просиживать за компьютером сутками ̶и̶ ̶г̶у̶с̶я̶м̶и̶ . Кто то любит ковыряться в машинах, а мы собираем своих франкенштейнов своими руками, чтобы увеличить скорость рендера на 5%, разгоняем процессоры, жжем материнки и видеокарты, ведь адреналин может выделяться не только в экстримальных местах, но и прямо за рабочим креслом :) С выходом Vray 3.5 сильно захотелось попробовать ГПУ рендеринг, и это превратилось в этот пост. Под катом все подробности выбора железа, установки, настройки, все подводные камни и ощущения от нереальных скоростей :)
После просмотра демо ролика мне буквально не сиделось на месте и я начал собирать информацию о ГПУ рендере везде где только мог, выяснилось что Bulgarov уже давно переехал на ГПУ:
и собрал какого-то нереального монстра с водяным охлаждением, а так же небезызсвестный DabartiCGI тоже перешел на ГПУ и во всю пропагандирует вегетарианство и сыроедство его.
У него система уже попроще, но всё равно довольно дорогая. Основные тезицы которые я почерпнул исследовав интернет такие:
1. Видеокарты могут быть разными(но просчет только Nvidia)
2. Количество памяти может быть разным. Оно не суммируется и используется наименьший объем памяти из всех доступных у видеокарт
3. Можно сочетать Ati/AMD(для отображения изображения с мониторов) и Nvidia для рассчетов
4. Sli режим не нужен, достаточно просто выбрать нужное количество видеокарт для просчетов
5. Основная проблема это охлаждение и питание.
Немудурствуя лукаво я зашел на интернет магазин и купил 7 видеокарт Nvidia 1070GTX 8Gb(25-35 тыс руб штука) которые были в наличии разных производителей и цены, чтобы проверить все тезисы выше, а так же 2 БП 1200 и 1000Ватт(8-10тр штука) чтобы точно хватило(заявленное потребление у видеокарт 150 ватт штука).
Первым делом выяснилось, что просто так вставить 7 видеокарт в одну материнскую плату невозможно, даже если в ней есть 7 PCI-express-x16, они попросту туда не влезут, поэтому покупать специальную материнскую плату не надо. Достаточно любой "Gaming" с 4хPCIexpress-x16(это стандартные длинные пазы для видеокарт) и 3xPCIexpress-x1(урезанные, обведены красным)
К сожалению моя настольная материнка была с тремя большими ГПУ слотами и совсем не подходила даже для простой ГПУ станции, поэтому я пошел на балкон:
У нормальных людей на балконе можно найти много чего полезного, а у меня там - рендерферма :) С открытым окном в минус 30 рендерится очень хорошо:) Оказалось что почти все материнки для Xeon "нормальные" и я выбрал Gigabyte x99 Gaming 5:
Она компануется 4мя длинными и 3мя короткими PCI через 1, что позволяет воткнуть 4 видеокарты в обычный корпус MidiTower за 1000 рублей. Вы спросите, а как же всё таки воткнуть все 7 видеокарт в одну материнскую оплату? Оказалось, что тут без рукожопства уже не обойтись и найти детали в обычном супермаркете электроники около дом нереально, потому что нужно расширить короткие PCIexpress слоты с помощью специальных расширителей - "Raiser" или "Extender PCI". Они есть разных видов, но мне посоветовали вот такие:
Попутно выяснилось что Fedex,DHL и все скоростные доставщики больше физлицам в РФ не отправляют ничего, продавец прискорбно сообщил об этом и добавил мне к заказу ещё 2 удлинителя(к 20 которым я купил) и отправил всё Почтой россии/EMS, я превратился в ждуна и собрал 4хГПУ систему:
До этого у меня была 980GTX 4 GB и я решил оставить её для тестов рендера с разной памятью. Zotac был самый дорогой, в металлическом корпусе, с диодной подсветкой и т п + ещё одна самая дешевая 1070gtx от нвидии из пластика и с всего 8 пинами питания вместо 16 как у остальных.
Проблемы при сборке:
1. Видеокарты очень длинные (возможно кому то придется вырезать мешающиеся запчасти)
2. БП не влез :)
3. Видеокарты лучше втыкать по одной, почему то на двух материнках изначально заработало только во втором слоте ГПУ с одной видеокартой(в биосе стоит по умолчанию первый PCIe)
4. Биос стартует гораздо дольше!
5. Windows может после старта висеть с черными экранами 2-5 минут каждый запуск(проверено на 7ке и 10ке). Просто ждите :)
Ну и вот так это всё примерно выглядит.
Я перешел на 4к рендеринг видео, поэтому мощностей всегда не хватает. Например этот 21 секундный ролик в Corona рендерился почти неделю, это конечно не приемлиемо:
Даже с использованием Vray один кадр с 4к честным дофом или моушен блюром рендерится около 2х часов на моем 44ядерном Xeon, что то типа такого:
GPU на 4х видеокартах рендерит подобные кадры за 25-30 минут... При этом стоимость видеокарт в сумме около 2000$ , а процессор 2500$ Конечно настраивать ГПУ сцены несколько сложнее, некоторые вещи ещё не поддерживаются, но доработка практически любой сцены не занимает много времени.
Первый тест ГПУ я провел на сцене изначально сделанной под ЦПУ :
Превью рендеринг анимации 480*320 с честным дофом занял 3 часа, пока я ездил в магазин за едой на одном компьютере! Это очень круто.(сетка немного глючит изза неверного подбора ФПС, именно за этим такие тесты и прогоняются :)
Остальные видеокарты ушли во второй рабочий комп моему напарнику, и в ожидании удлинителей пока всё останется так как есть, а потом будем добивать рабочий объем до 7 ГПУ :) но это уже в следующем посте, а пока все - итак сильно затянул, не забывайте ставить оценки, если вам понравилось и репостить где надо и не надо.
PS: GPU это круто и довольно просто!