- Переезжаем на ГПУ рендеринг, Часть 2
- Переезжаем на GPU Rendering, первый опыт(VrayRT 3.5 GPU).
- Рендеринг на процессоре CPU и видеокарте GPU, основные различия
- Что такое рендеринг?
- Рендеринг на процессоре компьютера (CPU )
- Рендеринг на видеокартах (GPU )
- CPU и GPU рендеринг: различия работы на графическом и центральном процессоре
- Архитектура GPU и CPU процессоров
- Качество рендеринга на CPU и GPU
- Преимущества использования оперативной памяти CPU рендеринга
- Выполнение сложных сценариев
- Стабильность рендеринга
- Скорость рендеринга на CPU и GPU
- Производители оборудования для рендеринга
- Стоимость оборудования для рендеринга на видеокартах и процессорах
- Движки для рендеринга
- Тест производительности и выбор оборудования для рендеринга
Переезжаем на ГПУ рендеринг, Часть 2
Приветсвутю тебя, мой юный Шахтер! Да, да! теперь все визуализаторы где то внутри себя немного копают:) Ведь наступил золотой век рендеринга. Наконец то ваш компьютер почти ничем не ограничен в росте мощности, теперь не нужно держать на балконе целую рендер ферму чтобы считать картинки, достаточно и одного хорошего компьютера. В этой статье я расскажу о реальном опыте переезда на ГПУ рендеринг со всеми возможными проблемами и подводными камнями. Добро пожаловать под кат…
Исходными данными было наличие около 10 видеокарт 1070 различных форм и моделей и 15 рендер нод на процессорах Xeon, поддержка которых в рабочем состоянии превратилась в ад, поэтому было решено срочно избавиться от этого мусора и состряпать рендер ферму на ГПУ.
Недолго думая была куплена майнерская Asrock H110 PRO BTC+ материнская плата с поддержкой 13 PCI-e слотов для видеокарт
и собран живописный монстр на 10 видеокарт и 3 блока питания, которые синхронно запитывают их:
На данном лоте представлены 10 видеокарт в одной Windows системе, которые работают! При этом только 2 из них одинаковые, все остальные разные как по производителю, так и по модели, это сделано специально чтобы проверить стабильность работы такой системы. (Asus, Palit, Gigabyte, Nvidia, KFA )
На момент сборки вышла версия windows 10 которая обеспечивала поддержку 10 видеокарт в системе, windows 7 технически поддерживает не больше 6 штук(и судя по всему мелкомягкие не собираются ничего с этим делать), после этого драйверы “лишних” видеокарт пишут ошибку и работать отказываются, как их не проси.
Запуск любой системы сводится к запуску со всей этой горой железа и установке 1 видеодрайвера, а потом несколько перезагрузок вплоть до того момента, пока винда не поймет как над ней издеваются и не примет всё как есть (обеспечит драйверами все видеокарты) 🙂
Если вам подобное удастся то, рано радоваться, с этим всем ещё надо как то взлететь 🙂 то есть начать суть процесса — ̶М̶А̶Й̶Н̶И̶Н̶Г̶!̶ Рендеринг!
Мы давно и сильно зависимы от Vray по многим причинам, поэтому будем рассматривать его и Redshift.
Итак, как вы видели на картинке в шапке, Вирей может рендерить 10 видеокартами одновременно(VrayRT CUDA 3.6 ) Но делает он это абсолютно бесполезно, рендеринг на 5х1080 видеокартах тестовый сцены с чайниками (HDR+2 VrayLight+motionBlur+DOF) занимает 6 минут, а 10х1080 — 9 минут. При рендере большим количеством видеокарт Врей сталкивается с большой проблемой распределения ресурсов процессора и памяти, что приводит к тотальному провалу рендертаймов, к тому же Windows 10 дополнительно жрет 20% процессора относительно рендеринга в 7ке. При этом Вирей грузит видео карты на 100% весь период времени, ощущение такое что вы на грузовике Прогресс пытаетесь стартовать к МКС. Куда девается вся мощность скорее всего знает только Дружко
По ощущениям эффективность рендеринга вирея линейна до 3х видеокарт в системе, после чего производительность резко падает… (тесты делались на разных материнских платах, количестве оперативной памяти и процессорах).
Все ксеоны уже давно переехали к новому хозяину и я уже было думал броситься с балкона 26го этажа прямо в сугроб, но на выручку пришел священный REDSHIFT
При этом он ограничен 8ю картами прямо на программном уровне.
Но как обычно нельзя просто так взять и решить все проблемы, в виндовс 10 по необъяснимым причинам больше 4х видеокарт редшифт запустить на рендеринг не мог и крашился с вероятностью 146% (Windows 10 официальный с сайта майкрософт, билд обеспечивающий поддержку 10 гпу).
Конечно же прошло немало часов и попыток переустановки драйверов, версий 3д макса, редшифта, танцев с бубнами, но помогло только одно — установка Windows 7.
Пришлось отказаться от 4х видеокарт и оставить в системе 6 штук, которые успешно запустились и начали считать всеми любимые чайники
К моему ужасу редшифт посчитал их за 2 минуты и похоронил Vray окончательно. Казалось бы вот оно — Счастье! Но и это оказалось не всё, Редшифт в продакшен режиме показывал стабильную загрузку ГПУ на 45 процентов мощности какие бы настройки рендера ему не запихивали:
“Это какой то заговор!” — скажите вы, я лишь отвечу:
Нагрузить Redshift на 80-90 процентов можно включив Progressive режим рендеринга, который при этом не позволяет считать Render Elements нивкаком виде.
Разные видеокарты в одной системе работают абсолютно стабильно!
Вирей сильно зависит от Процессора во время рендера на ГПУ. На слабом CPU потери мощности рендеринга могут быть даже с 1 Видеокартой, Редшифт такой проблемы не имеет.
Майнерские материнки в целом подходят для рендеринга, но важно понимать что они ограничены моделями процессоров и количеством Оперативной памяти.
Операционка крайне важна и рассчитывать сейчас на стабильные решения не стоит, вероятно пройдет какое то время, прежде чем RS и остальные дотянуться до тестирования на новейших системах и залатают дыры в поддержке мульти ГПУ.
Специальные майнерские видеокарты не умеют рендерить (было куплено 3 штуки для проверки). Их драйвера сильно отличаются от тех на которых пишется CUDA рендереров и вероятность того что они будут рендерить правильно крайне мала(прецеденты были, но это ничтожно малый процент)
Нельзя покупать видеокарты с одним кулером, они улетят с вами на луну
Блоки питания от 1000 ВТ и обязательно с огромным количеством 6+2pin или 8pin PCI, иначе вам придется питать все несколькими, а это не супер надежно. (Идеальный вариант — серверный БП на 2400WT)
Старые материнские платы с 6-7 PCI слотами с большой вероятность не будут работать, потому что не рассчитаны именно на видеокарты в этих слотах и число линий не соовтествует требованиям, о чем вам с удовольствием скажет винда
8 гб достаточно для текущих задач, истратить видео память представляется крайне сложной задачей, которая ещё и решается редшифтом с помощью использования Оперативной памяти
Октан, центилеос, Фсторм и прочие не были представлены потому что их материаловедение не вписывается в наш пайплайн уж точно и предыдущие их тесты не выявили существенных преимуществ по скорости относительно RS и уж точно не стало удобнее чем Vray в плане работы с материалами и сценой.
Немного рендера с дофчиком и моушен блюром для расслабления глаз.
На текущий момент идеального решения для работы с ГПУ не найдено, оптимальной рендер нодой является система из 6 видеокарт на Winows 7, вероятно очень скоро станет возможно работа редшифта с 8 видеокартами на Win10, но для этого нужно ждать новых релизов как одного, так и другого. Vray стабильно проигрывает в производительности, стабильности да и всём остальном. Забыть его не позволяет лишь широкая распространенность в той сфере в которой мы работаем (стоки и продажа 3д моделей).
PS: 35 видеокарт майнят около 100$ в сутки пока не рендерят :)) Майнить ВЫГОДНО!
Не забываем лайкать и подписываться на мой ВК )
Переезжаем на 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. Видеокарты очень длинные (возможно кому то придется вырезать мешающиеся запчасти)
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 ГПУ 🙂 но это уже в следующем посте, а пока все — итак сильно затянул, не забывайте ставить оценки, если вам понравилось и репостить где надо и не надо.
Рендеринг на процессоре CPU и видеокарте GPU, основные различия
CPU рендеринг использует процессор компьютера для обработки сцены и ее рендеринга. Это также более традиционный способ выполнения рендеринга. Однако с появлением графических процессоров (GPU ) рендеринг приобрел большую популярность.
В очень широком смысле рендеринг на GPU позволяет одновременно запускать большее количество параллельных процессов, что делает его быстрее, но ограничивает количество задач, которые он может выполнять, но он не так хорош при рендеринге больших детализированных сцен с множеством объектов. CPU рендеринг в свою очередь, не допускает параллельных процессов, но может выполнять более разнообразные задачи, таким образом, в результат рендер будет более детальный.
Что такое рендеринг?
Рендеринг — это в основном процесс создания двухмерных изображений (например , для экрана компьютера) из 3D-модели. Другими словами, рендеринг позволяет получить готовое изображение трехмерной модели в «плоском » варианте. Изображения генерируются на основе наборов данных, определяющих цвет, текстуру и материал определенного объекта на изображении.
Рендеринг осуществляется либо центральным процессором компьютера, либо графическим процессором видеокарты. Иногда в гибридной конфигурации, например, с таким программным обеспечением, как V-Ray, CPU и GPU работают вместе. Понимание этих типов рендеринга поможет оценить различия между ними.
Рендеринг на процессоре компьютера (CPU )
Сейчас CPU компьютера в основном состоит из несколько мощных ядер, что позволяет им выполнять операции с очень высокой скоростью. Кроме того, чем больше количество ядер, тем выше производительность рендеринга.
Современные процессоры имеют до 64 ядер, что обеспечивает отличную производительность для рендеринга. CPU рендеринг также выигрывает потому, что он имеет доступ к встроенной оперативной памяти (ОЗУ ). Это позволяет пользователю относительно легко визуализировать сцены с большим объемом данных. Рендер на центральном процессоре имеет высокое качеством. Например, Pixar использует рендеринг на процессорах, что обеспечивает исключительное визуальное качество его фильмов.
Хорошим примером того, где CPU рендеринг имеет преимущество, — это архитектурный дизайн. Если сцена создана со множеством сложных геометрических форм и мелких деталей, такой тип рендеринга обеспечат гораздо лучший и более точный результат.
Рендеринг на видеокартах (GPU )
Графический процессор имеет тысячи небольших ядер, работающих на относительно низкой тактовой частоте. В данном случае именно количество этих ядер позволяет графическому процессору обеспечивать достаточно высокую производительность рендеринга. Графические процессоры изначально предназначены для параллельного выполнения задач. Это дает им преимущество для выполнения специальных зада, перед центральными процессорами компьютера, поскольку рендеринг — это задача, которая обычно включает в себя множество этапов. В связи с этим, графические процессоры известны чрезвычайно быстрым временем рендеринга.
Быстрый рендеринг позволяет графическому процессору GPU обрабатывать графику в режиме реального времени, заметили, что современные видеоигры работают на графических процессорах намного плавней. Наряду с игровой индустрией графические процессоры произвели революцию в области майнинга криптовалют, анализа больших данных, искусственного интеллекта и машинного обучения.
Рендеринг на GPU постепенно становится распространенным и востребованным во многих областях и используется в качестве альтернативы традиционным системам рендеринга на CPU. Компания Autodesk Arnold представила свой движок для рендеринга на графическом процессоре , учитывая его высокий потенциал.
CPU и GPU рендеринг: различия работы на графическом и центральном процессоре
Архитектура GPU и CPU процессоров
Мощный процессор, такой как например Threadripper 3990x , имеет почти 64 ядра (тогда как средний ПК имеет от 4 до 8 ядер). Эти ядра по количеству могут быть меньше по сравнению с ядрами графического процессора, но их более высокая тактовая частота позволяет выполнять задачи намного быстрее, для рендеринга обычно лучше большее количество ядер.
Графический процессор, для сравнения, имеет тысячи ядер — 10 496 в случае Nvidia RTX 3090. Однако эти ядра работают на гораздо более низкой частоте, чем ядра центральных процессоров компьютера. Огромное количество ядер увеличивает скорость и в некоторых сценариях рендеринга позволяет графическим процессорам превзойти центральные.
Качество рендеринга на CPU и GPU
CPU имеют меньше ядер по сравнению с GPU, однако они гораздо более универсальны и предназначены для выполнения сложных наборов инструкций. Это позволяет центральным процессорам запускать практически любой алгоритм с минимальными усилиями и таким образом, обеспечивать более качественный результат.
С точки зрения качества графические процессоры просто не могут сравниться с центральными. Но обычно вы обнаружите, что рендеринг на GPU содержит больше шумов.
Но увы, если центральный процессор не имеет достаточной мощности, качество результат будет очень плохим.
Преимущества использования оперативной памяти CPU рендеринга
Рендеринг на CPU имеют доступ к оперативной памяти компьютера. Это позволяет использовать огромные объемы памяти, которые можно в любой момент нарастить. Threadripper 3990x может поддерживать 512 ГБ оперативной памяти DDR4. Центральному процессору в таком случае, отображает огромные объемы данных в сложной сцене с множеством объектов и деталей.
Графические процессоры ограничены встроенной видеопамятью (VRAM ). У новейшей Nvidia 3090 всего 24 ГБ видеопамяти, чего большинству пользователей более чем достаточно, но в сложных сценах с множеством элементов это станет узким местом.
Выполнение сложных сценариев
Процессоры по своей конструкции могут выполнять множество задач, другими словами они универсальны. Это полезно при рабочих нагрузках, когда тип сцен непостоянен или слишком большой объем для одновременной обработки.
Графические процессоры ограничены аппаратными возможностями. Они разработаны с одной целью и часто используются для многократного запуска одних и тех же задач. Кроме того, ограничения оперативной памяти в сочетании с более медленными ядрами ограничивают их способность эффективно отображать различные сценарии.
Стабильность рендеринга
Центральный процессоры встроены в систему компьютера и хорошо интегрированы, все приложения и программы спроектированы с учетом архитектуры CPU. Тем более CPU используются для рендеринга значительно дольше и соответственно большинство багов уже найдено и отлажено. Соответственно, общая стабильность рендеринга на CPU лучшие, по сравнению с GPU.
Графические процессоры GPU, более склонны к сбоям. Внезапные перепады напряжения, обновления драйверов и отсутствие совместимости с некоторыми системами могут привести к плохой и нестабильной работе графических процессоров.
Скорость рендеринга на CPU и GPU
Графические процессоры выполняют задачи параллельно, что приводит к увеличению скорости, поскольку различные элементы сцены могут обрабатываться одновременно. Графические процессоры также широко используются в областях, где требуется рендеринг в реальном времени (например , в видеоиграх).
Процессоры имеют меньше ядер и предназначены для последовательного выполнения задач. Они обычно медленнее, чем GPU процессоры. CPU также ограничен в доступности своих ресурсов. Поскольку ему приходится выполнять множество задач, CPU не может использовать все свое оборудование только для рендеринга. Это также способствует снижению скорости.
Производители оборудования для рендеринга
По мере того, как мы приближаемся к пределам закона Мура , производительность каждого нового поколения процессоров растет значительно медленнее, нежели это было 10 лет назад. Со временем это приведет к плато производительности и неизбежному постоянному совершенствованию графических процессоров.
В последнее время мы наблюдаем значительный рост в области разработки графических процессоров, такие компании, как AMD и Nvidia жестко конкурируют в этом секторе. А поскольку модернизировать графический процессор намного проще, вы можете ожидать повышения производительности рендеринга с каждым новым поколением.
Стоимость оборудования для рендеринга на видеокартах и процессорах
Графические процессоры GPU значительно ниже по цене по сравнению с мощными центральными процессорами. Хороший графический процессор, такой как RTX 3090, может стоить около 1500 долларов, тогда как мощный процессор, такой как Threadripper 3990x , стоит уже 5000 долларов.
Графические процессоры также дают вам преимущество с точки зрения апскейлинга и масштабирования. Вы можете просто подключить еще один графический процессор к уже существующей системе и все готово. Если вы хотите увеличить масштаб и мощность с помощью CPU, помимо стоимости самого CPU вам придется инвестировать в модернизацию всего сопутствующего оборудования (материнские платы, блоки питания и т.д.).
Движки для рендеринга
Механизмы рендеринга — еще один ключевой фактор при выборе между рендерингом CPU и GPU. Многие движки для рендеринга работают исключительно на CPU или GPU. Следовательно, механизмы рендеринга также определяют, какое программное обеспечение вы можете запускать в своей машине.
Движки рендеринга, такие как Arnold, Corona и 3Delight, работают на процессорах CPU и дают несколько более качественные результаты. Между тем, средства визуализации, такие как Blender Cycles, Octane и Redshift, оптимизированы для графических процессоров GPU.
Тест производительности и выбор оборудования для рендеринга
Двумя популярными способами оценки и теста производительности оборудования для рендеринга являются Cinebench для CPU и Octanebench для GPU. Они оба являются лучшими эталонными стандартами в отрасли. Согласно тестам CG Director , многоядерный процессор с более высокой тактовой частотой — лучший выбор для вашего рабочего процесса. Процессоры AMD 3-го поколения имеют серьезное преимущество в производительности и сравнительно дешевле, чем процессоры Intel. Однако, если вам нужно лучшее из лучшего для CPU рендеринга — это Threadripper 3990x.
В тесте Octanebench карты Nvidia RTX оказались лучшими и при использовании большего количества графических процессоров вы, вероятно, получите более высокую производительность, а также увеличите объем видеопамяти.
Итак, основные различия между рендерингом CPU и GPU в зависимости от ваших потребностей:
- Если ваш рабочий процесс требует скорости, менее сложен и последователен в работе, выбирайте выполнение рендеринга с помощью графического процессора GPU. Помимо более низких затрат на оборудование, качество работы не будет уступать рендерингу на центральном процессоре CPU. Рендеринг с помощью графического процессора также лучше подходит для новичков.
- Если вы отдаете предпочтение качеству, имеете большой бюджет на оборудование и у вас есть время для ожидания качественных результатов, рендеринг на CPU это лучшее, что может быть. Вы не только получите качественный результат, но и сможете с легкостью обрабатывать сложные сценарии, что даст вам конкурентное преимущество на рынке.