Рендеринг на GPU-сервере: сколько карт брать и как считать время
Рендер - задача, у которой есть неприятное свойство: она либо занимает машину целиком на часы, либо не идёт вовсе. Работать за компьютером во время просчёта невозможно, а дедлайн обычно приходится на тот момент, когда своей мощности не хватает. Отсюда и берётся аренда: карты нужны интенсивно, но не постоянно.
Разберём, чем просчёт на видеокарте отличается от процессорного, почему сцена обязана поместиться в видеопамять, как несколько карт сокращают время и в какой момент аренда становится выгоднее собственной фермы.
Процессорный рендер и рендер на видеокарте
Раньше просчётом занимался процессор, и многие проекты до сих пор так и считаются. Видеокарта выигрывает за счёт того, что рендер - идеально параллельная задача: кадр разбивается на части, и тысячи простых ядер считают их одновременно.
Практическая разница:
- Скорость. На типовых сценах выигрыш измеряется разами, а не процентами.
- Ограничение по памяти. У процессорного рендера в распоряжении вся оперативная память сервера. У карты только её собственная, и это главное ограничение.
- Поддержка движком. Не всё считается на карте одинаково хорошо: часть эффектов и плагинов реализована только для процессора.
Общее устройство и разница между процессором и видеокартой разобраны в статье сервер с видеокартой.
Сцена обязана влезть в видеопамять
Это главное правило, и нарушение приводит к самой обидной ошибке: рендер стартует и падает почти в конце.
Видеопамять расходуется на геометрию, текстуры и вспомогательные данные. Больше всего обычно занимают текстуры высокого разрешения: сцена с сотней материалов по четыре тысячи пикселей съедает память быстрее, чем сложная геометрия.
Если сцена не помещается, вариантов немного:
- уменьшить разрешение текстур, где это не видно в кадре;
- разбить сцену и считать слоями;
- включить режим, при котором часть данных берётся из оперативной памяти - работает, но заметно медленнее;
- взять карту с большим объёмом.
Отсюда правило выбора: сначала смотрят на объём видеопамяти, потом на скорость карты. Быстрая карта, в которую сцена не влезла, бесполезна. Методика расчёта памяти под разные задачи разобрана в статье сколько видеопамяти нужно для нейросети - для рендера логика та же.
Сколько карт брать
У рендера есть свойство, которого нет у большинства нагрузок: он масштабируется почти линейно. Две карты считают анимацию примерно вдвое быстрее, четыре - вчетверо, потому что кадры независимы и раздаются картам параллельно.
Это принципиально отличает рендер от запуска языковых моделей, где вторая карта даёт совсем не двукратный прирост. Поэтому для рендера старшие конфигурации с несколькими картами имеют прямой смысл.
Практический подход к выбору:
| Что считаете | Сколько карт |
|---|---|
| Одиночные кадры, визуализация | Одна карта нужного объёма |
| Короткая анимация, дедлайн не горит | Одна или две |
| Анимация с дедлайном | Столько, во сколько раз надо ускориться |
| Тяжёлая сцена, не влезающая в память | Сначала решить вопрос памяти, потом количество |
Важная оговорка: память не складывается. Четыре карты по 48 ГБ не дают 192 ГБ под одну сцену - каждая карта считает свой кадр и держит сцену целиком у себя. Количество карт ускоряет, но не увеличивает максимальный размер сцены.
Как считать время и деньги
Считать нужно от часов просчёта, а не от цены карты.
1. Замерьте один кадр на арендованной карте в реальном качестве. 2. Умножьте на число кадров - получите время на одной карте. 3. Разделите на число карт - получите время на конфигурации. 4. Умножьте на почасовую ставку - получите стоимость просчёта.
Важно закладывать не только сам рендер: загрузка сцены, тестовые кадры и выгрузка результата тоже занимают оплаченное время. Обычно это плюс несколько десятков минут к расчёту.
Главное преимущество почасовой модели здесь очевиднее, чем где-либо: вы платите за часы просчёта, а не за простой фермы. Своя ферма между проектами стоит денег на электричество и обслуживание, а карты при этом не заняты. Расчёт точки, где покупка всё же выгоднее, разобран в статье купить видеокарту или арендовать GPU, а общая логика почасовой оплаты - в статье почасовая оплата.
Что подготовить до аренды
Час оплаченного времени, потраченный на выяснение, чего не хватает, - самая обидная статья расходов.
- Соберите сцену со всеми зависимостями. Отсутствующие текстуры и внешние ссылки на файлы - причина номер один неудачных запусков.
- Проверьте лицензии движка. Аренда сервера не включает лицензию на рендер-движок, её вы приносите свою.
- Прогоните тестовый кадр локально в низком качестве, чтобы убедиться, что сцена цела.
- Оцените объём файлов. Текстуры и готовые кадры занимают десятки, а то и сотни гигабайт. Диск берут с запасом, см. NVMe, SSD или HDD.
- Продумайте, как забирать результат. Готовые кадры выгружают до удаления сервера, см. как передать файлы на сервер.
Частые ошибки
Берут карту по скорости, не проверив память. Сцена не влезает, и быстрая карта не помогает.
Ждут, что память сложится. Несколько карт ускоряют просчёт, но максимальный размер сцены не увеличивают.
Запускают финальный рендер без тестового кадра. Ошибка в материалах обнаруживается через шесть часов просчёта.
Забывают выгрузить результат. Удаление сервера уносит готовые кадры вместе с ним.
Считают только время рендера. Загрузка сцены и выгрузка кадров тоже оплачиваются.
Держат сервер включённым после просчёта. Тарификация идёт, пока машина существует.
Частые вопросы
Чем GPU-рендер лучше процессорного? Скоростью: рендер идеально параллелится, и тысячи ядер карты считают кадр в разы быстрее. Взамен сцена ограничена объёмом видеопамяти, а часть эффектов может не поддерживаться.
Что будет, если сцена не влезет в видеопамять? Рендер упадёт или переключится на медленный режим с использованием оперативной памяти. Поэтому объём памяти проверяют до запуска.
Складывается ли память нескольких карт? Нет. Каждая карта держит сцену целиком и считает свои кадры. Несколько карт ускоряют просчёт, но не увеличивают максимальный размер сцены.
Сколько карт брать под анимацию? Столько, во сколько раз нужно ускориться: рендер масштабируется почти линейно. Для одиночных кадров смысла в нескольких картах нет.
Как посчитать стоимость просчёта? Замерить время одного кадра, умножить на число кадров, разделить на число карт и умножить на почасовую ставку. Добавить время на загрузку сцены и выгрузку результата.
Входит ли лицензия рендер-движка в аренду? Нет. Провайдер предоставляет сервер с картами, лицензии на программы остаются вашими.
Выгоднее арендовать или собрать свою ферму? Зависит от загрузки. Если карты заняты не постоянно, аренда выигрывает: вы платите за часы просчёта, а не за простой между проектами.
Нужны карты под просчёт? GPU-серверы для рендеринга на RTX 4090 с 48 ГБ - Blender, Octane, Redshift, V-Ray и DaVinci Resolve, от одной до четырёх карт, почасовая оплата от 149 руб. Платите за часы рендера, а не за простой фермы.