Привет, Хабр! Меня зовут Даша Косова, я продакт менеджер Рег.облака. 

Когда-то 3D было для меня большим увлечением, которому я уделяла много времени. Я хорошо помню, как выглядел рендер на локальном компьютере: запускаешь сцену, смотришь как идут первые сэмплы. Сначала изображение зернистое, и только со временем начинает проявляться. Обычно на этом этапе ясно, что рендер займет часы, и компьютер лучше не трогать — можно пойти заниматься своими делами и просто проверять Blender время от времени.

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

Навигация по тексту:

Интересный факт: сейчас GPU-серверы — одна из составляющих IaaS-направления, за которое я отвечаю как продуктовый менеджер. Поэтому в какой-то момент мне стало интересно проверить насколько удобно и эффективно использовать их для рендеринга в Blender. Я решила просто взять одну сцену, одни настройки и сравнить время рендера на локальном компьютере и на облачном GPU. Результатами и своими выводами делюсь ниже.

Что и как я тестировала

Чтобы сравнение было корректным, я максимально упростила условия эксперимента и убрала всё лишнее, что могло бы повлиять на результат.

В обоих случаях использовался Blender 4.2 LTS — та же версия была установлена и локально, и на сервере, чтобы исключить различия в движке, денойзере или поведении Cycles.

В качестве тестовой сцены я выбрала Agent 327: Barbershop Interior — демо-сцену Blender Studio. Это интерьер с большим количеством источников света, сложными материалами и глобальным освещением — типичная «тяжелая» сцена, хорошо подходящая для проверки производительности Cycles. Сцена использовалась без изменений: геометрия, материалы и освещение оставались в исходном виде. Для сравнения я рендерила один кадр — так проще корректно измерить время и избежать влияния кешей или прогрева при длинной анимации. Настройки рендера в обоих случаях были одинаковыми:

  • Cycles;

  • GPU Compute;

  • 128 samples;

  • денойзинг OptiX;

  • разрешение 1920×1080.

Camera View сцены и Render Properties
Camera View сцены и Render Properties

Локальный компьютер

Локальный рендер выполнялся на следующей конфигурации:

  • GPU: NVIDIA GeForce GTX 1080 (8 ГБ)

  • CPU: Intel Core i7-8700K

  • RAM: 32 ГБ

  • ОС: Windows 11

Рендер запускался через стандартный интерфейс Blender. GPU был задействован, но по ощущениям всё происходило именно так, как я это помнила по прошлому опыту: сцена считается стабильно, без сюрпризов, но довольно медленно.

Один кадр сцены Agent 327 на локальном компьютере рендерился 2 минуты 48 секунд. В это время компьютер был практически полностью занят — параллельно работать с чем-то еще на нем было сложно.

Render Result в процессе и загрузка GPU на локальном ПК
Render Result в процессе и загрузка GPU на локальном ПК

Подготовка GPU-сервера

Для сравнения я использовала GPU-сервер с видеокартой NVIDIA RTX A5000 (24 ГБ), развернутый на базе стандартного образа Ubuntu 22.04 LTS.

Мне было важно не использовать никаких специализированных шаблонов для 3D-рендера — только базовую операционную систему и драйверы NVIDIA. Хотелось проверить, насколько всё это работает «из коробки», без сложной ручной настройки.

После создания сервера я проверила, что видеокарта корректно определяется системой:

Вывод из терминала подключившись по SSH
Вывод из терминала подключившись по SSH

Затем я установила Blender, скачав официальный бинарный дистрибутив Blender 4.2 LTS с сайта blender.org. Сборка из исходников не требовалась — Blender корректно работает в headless-режиме и запускается напрямую из терминала.

wget https://download.blender.org/release/Blender4.2/blender-4.2.0-linux-x64.tar.xz
tar -xf blender-4.2.0-linux-x64.tar.xz

Версия Blender и корректность установки  проверялась командой:

blender --version

Проверка версии Blender
Проверка версии Blender

Тестовая сцена была загружена на сервер по SFTP (через FileZilla). Сервер использовался исключительно для рендера, без графического интерфейса.

Подготовка GPU-сервера заняла несколько минут и не потребовала сложной ручной настройки
Подготовка GPU-сервера заняла несколько минут и не потребовала сложной ручной настройки

Как рендерить в Blender на сервере без GUI

На сервере Blender запускался в background-режиме, без графического интерфейса. Для этого используется флаг -b.

Минимальная команда для рендера одного кадра выглядит так:

blender -b scene.blend -E CYCLES -f 1

Важно учитывать, что при запуске без GUI Blender не всегда автоматически использует GPU. Чтобы гарантировать использование видеокарты и OptiX, я задала эти параметры через Python-скрипт, который передается Blender при запуске рендера. 

В моём случае использовался следующий скрипт force_gpu.py:

import bpy
scene = bpy.context.scene
scene.render.engine = 'CYCLES'
scene.cycles.device = 'GPU'
prefs = bpy.context.preferences.addons['cycles'].preferences
prefs.compute_device_type = 'OPTIX'
prefs.get_devices()
for device in prefs.devices:
    device.use = (device.type != 'CPU')

Финальная команда рендера выглядела так:

time blender \
  --enable-autoexec \
  -b barbershop_interior.blend \  
  -P force_gpu.py \                     
  -E CYCLES \
  -f 1

Команда time позволяет зафиксировать реальное время рендера — именно это значение затем используется для сравнения с локальным компьютером.

Параллельно с рендером я наблюдала загрузку видеокарты через nvidia-smi, чтобы убедиться, что GPU действительно используется.

Терминал с запущенным рендером и nvidia-smi
Терминал с запущенным рендером и nvidia-smi

Результаты

На GPU-сервере рендер одного кадра сцены занял 20,9 секунды.

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

Если свести результаты в таблицу, разница становится наглядной:

Платформа

Время рендера

Локальный компьютер (GTX 1080)

2:48

Cloud GPU (RTX A5000)

0:21

В конце эксперимента я записала видео, где рендер запускается одновременно на локальном компьютере и на GPU-сервере. Пока локальный рендер только начинает считать первые сэмплы, сервер успевает завершить кадр полностью — это хорошо иллюстрирует разницу в скорости.

Выводы

Этот тест не был попыткой найти лучший способ рендера или универсальное решение для всех сценариев. Скорее — проверкой того, как облачные GPU ощущаются в реальной работе сегодня.

Даже на одном кадре разница во времени заметна: около 2 минут 48 секунд на локальном компьютере против 21 секунды на GPU-сервере. Если мысленн�� перенести эти цифры на анимацию из 100 кадров, локальный рендер занял бы почти 5 часов, тогда как сервер справился бы примерно за 35 минут.

Но для меня ключевым оказался не только выигрыш во времени. Во время облачного рендера локальный компьютер остается свободным — можно продолжать работать с другими сценами или заниматься другими задачами, не ожидая завершения рендера.

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

Если у вас есть опыт рендера в Blender на облачных GPU или свои наблюдения по работе с локальным железом — поделитесь в комментариях, будет интересно сравнить опыт!