Рендеринг на облачных GPU: оффлайн vs интерактив
Задача страницы. Помочь выбрать архитектуру и профиль GPU под оффлайн‑рендер (фермы, очереди, пакетные задания) и интерактив (DCC/Unreal/Omniverse, удалённые рабочие станции), быстро стартовать на шаблонах и посчитать экономику.
TL;DR
- Оффлайн‑рендер → максимальный throughput, допускается Interruptible при грамотном разбиении на короткие чанки (≤ 120 с) и ретраях; артефакты/тайлы/кэш — на локальном NVMe.
- Интерактив → минимальная латентность, стабильный FPS/отклик; On‑Demand режим, тонкая настройка стриминга (NVENC/AV1), трекинг p50/p95 input‑to‑pixel.
- Профили GPU: 24 ГБ (Compact) для тестов/превью и небольших сцен; 48 ГБ (Balanced) — основной рабочий профиль; 80 ГБ (HQ) — тяжёлые сцены, большие текстуры, path tracing/denoise.
- Хранилище: сцены/ассеты в «тёплом» хранилище, локальный NVMe — «горячий» кэш; для оффлайна — префетч батчей.
Сценарии: когда что выбирать
Оффлайн‑рендер (batch/farm)
- Кинопроекты, рекламные ролики, кадры/анимация в Blender Cycles, Redshift/Octane/V‑Ray, Houdini Karma XPU.
- Массовые транскоды/денойзинг/апскейл — в отдельные батчи.
- Параллелим по кадрам/тайлам/strip‑ам; чанк ≤ 120 с для Interruptible.
Интерактив (DCC/Realtime/Pixel Streaming)
- Сессии художников/тех. артистов в DCC, Unreal/Path Tracer, NVIDIA Omniverse/Isaac; удалённые GPU‑станции.
- On‑Demand, приоритет — латентность до кадра (stream‑input → frame‑present p95). NVENC/AV1, адекватный битрейт и адаптивный fps.
Гибриды
- Превью в интерактиве, финальные кадры — в оффлайн‑очередь.
Профили GPU и ориентиры производительности
| Профиль | VRAM | Типовые задачи | Режим |
|---|---|---|---|
| 24 ГБ (Compact) | 24 ГБ | Превью/стил‑кадры, лёгкие сцены | Interruptible (batch) |
| 48 ГБ (Balanced) | 48 ГБ | Средние/тяжёлые сцены, анимация 1080p/1440p | Interruptible или On‑Demand |
| 80 ГБ (HQ) | 80 ГБ | Большие сцены, 4K/8K, path tracing, волюметрика | On‑Demand |
Конфиги и скелеты
Docker‑задача оффлайн‑рендера (Blender headless)
docker run --rm --gpus all \
-v /projects/scene:/scenes \
-v /projects/out:/out \
registry.local/blender-gpu:latest \
blender -b /scenes/shot.blend -E CYCLES \
--python-expr "import bpy; \
prefs=bpy.context.preferences.addons['cycles'].preferences; \
prefs.compute_device_type='OPTIX'; \
prefs.get_devices(); [setattr(d,'use',True) for d in prefs.devices]; \
bpy.context.scene.cycles.device='GPU'" \
-s 100 -e 200 -a -o /out/frame_#### -F PNG
Если кадры длинные (> 120 с), разрежь на тайлы (region render) и рендерь независимо.
YAML‑спека очереди батч‑задач
job:
name: "shot_010_offline"
gpu_profile: "48GB-Balanced"
mode: "interruptible"
chunk_seconds: 120
retries: 3
input:
scene: "/scenes/shot_010.blend"
frames: [100,101,102,103,104,105]
cache:
nvme_size_gb: 200
warm_prefetch: ["textures/", "cache/irradiance/"]
output:
path: "/out/shot_010/"
format: "EXR"
Наблюдаемость, метрики, алерты
Ключевые метрики:
- Оффлайн: render_frame_seconds (histogram), job_queue_depth, tiles_inflight, gpu_utilization, gpu_memory_used_bytes, io_read_mb_s.
- Интерактив: frame_time_seconds (p50/p95), fps_actual, input_to_pixel_latency_ms, nvenc_sessions, net_rtt_ms.
Алерты: p95 frame_time_seconds > целевого SLA; gpu_utilization < 60% при высокой очереди — признак CPU/I/O узкого места.
Экономика и формулы
Оффлайн:
Cost_per_frame = (c_gpu × t_frame / 3600) / U × r
Cost_total = N × Cost_per_frame + Overhead_io
Интерактив:
Cost_per_hour = c_gpu / U
Где c_gpu — цена/час, t_frame — сек/кадр, U — целевая загрузка GPU (0..1), r — retry‑factor.
Чек‑лист перед продом
- Версии движка/плагинов зафиксированы в контейнерах; эталонные кадры проверены.
- Настроен NVMe‑кэш и warm‑префетч ассетов.
- Определены целевые p50/p95 frame_time/FPS, алерты включены.
- Выбрана стратегия разбиения (кадр/тайл/strip), чанк ≤ 120 с для Interruptible.
- Секреты/лицензии вынесены в секрет‑хранилище; egress ограничен.
- Экономика посчитана (Cost_per_frame/Cost_per_hour) по профилю GPU.
Навигация по разделу «Рендеринг»
Blender Cycles • Redshift/Octane/V‑Ray • Houdini Karma XPU • Unreal Engine • NVIDIA Omniverse/Isaac • Транскодирование видео • Деноизинг
Готовы запустить?
Запустить GPU-сервер