Удалённые GPU‑станции для студий: Parsec/Sunshine

Задача страницы. Дать практический рецепт организации удалённых рабочих мест художников/монтажёров/техартов на облачных GPU: архитектуры Parsec/Sunshine (WebRTC/NVENC/AV1), профили GPU, настройки стриминга, наблюдаемость p50/p95 «input→pixel», экономика сессий, безопасность и типовые сбои.

TL;DR

  • Интерактивные сессии = On‑Demand. Приоритет — низкая латентность и стабильный FPS. Целимся в p95 input→pixel ≤ 120 мс (60 FPS) или ниже по целям. См. https://cloudcompute.ru/solutions/throughput-vs-latency/
  • Паркетинг железа. Один пользователь = один GPU‑инстанс. Масштабирование — пулом станций и брокером сессий.
  • Кодеки. NVENC: H.264/HEVC/AV1. Для 4K/фотореализма — HEVC/AV1; для совместимости — H.264.
  • Профили GPU. 24 ГБ (Compact) — предпросмотры/монтаж; 48 ГБ (Balanced) — основная работа DCC; 80 ГБ (HQ) — тяжелые сцены/4K Path Tracer.
  • Хранилище. Проекты в «тёплом» бакете; локальный NVMe — «горячий» кэш DCC/Shader/DDC. См. https://cloudcompute.ru/solutions/storage-data/
  • Наблюдаемость. input_to_pixel_latency_ms, frame_time_seconds (p50/p95), fps_actual, nvenc_utilization, gpu_memory_used_bytes, net_rtt_ms. См. https://cloudcompute.ru/solutions/monitoring-logging/
  • Безопасность. SSO/2FA, запрет файлового копирования (по политике), водяные знаки, изоляция проектов, ограниченный egress. См. https://cloudcompute.ru/solutions/security/
  • Экономика. Cost_per_hour = c_gpu / U_session. Плюс при необходимости — c_egress за трафик. См. https://cloudcompute.ru/solutions/cost-planner/

Сценарии: когда это нужно

  • Look‑dev/lighting/материалы в DCC (Blender/Houdini/Unreal/Omniverse).
  • Монтаж/превью/озвучка — низкая задержка аудио/видео, точный тайминг.
  • Ревью/дэйлизы — общий доступ к сцене/таймлайну, live‑комментарии.
  • Смешанные пайплайны — стриминг интерактива, а финальный рендер/денойз/транскод — оффлайн в очереди. См. https://cloudcompute.ru/solutions/rendering/ и https://cloudcompute.ru/solutions/rendering/video-transcode/

Архитектуры/пайплайны A. Windows + Parsec (простая одноузловая станция)

[Artist Input] -> [Parsec Host on GPU VM] --NVENC--> [Video Stream] -> [Viewer]
 | |
 [DCC/Engine] [Audio]
 |
 [NVMe Hot Cache]
  • Виртуальная станция на GPU, включён NVENC/низкая латентность, кэш DDC/Shader на NVMe.
  • Политики: запрет буфера обмена/файлового копирования при необходимости.

B. Linux + Sunshine (WebRTC), многостаночная ферма

[Users] -> [Broker/API] -> [Session Scheduler] -> [GPU Workstation Pool]
 | | |
 [SSO/2FA] [Sunshine] [NVMe]
 | |
 [Audit/Logs] [NVENC→WebRTC]
  • Брокер сессий привязывает пользователя к свободной станции по профилю GPU.
  • Внешний доступ — через шлюз/реле, ограниченный egress, аудит подключений.

C. Гибрид: интерактив + оффлайн‑очереди

[Interactive Session] --export shots--> [Render Farm Queue]
 | 
 [Denoise] [Transcode]

Художник готовит сетапы; ферма считает оффлайн. См. https://cloudcompute.ru/solutions/rendering/blender/, https://cloudcompute.ru/solutions/rendering/unreal/

Профили GPU/VRAM/ориентиры

**Профиль** **VRAM** **Типовые задачи** **Режим** **Отн. мощность (≈)** **Примечания**
**24 ГБ (Compact)** 24 ГБ Монтаж/превью 1080p, лёгкие сцены DCC On‑Demand 1.0 Для 1440p/4K возможны снижения качества/битрейта
**48 ГБ (Balanced)** 48 ГБ Основные DCC‑сцены, look‑dev, 1080p/1440p стрим On‑Demand 1.5–1.8 «Рабочая лошадь» удалённых станций
**80 ГБ (HQ)** 80 ГБ 4K/плотные сцены, Path Tracer превью On‑Demand 2.2–2.6 Возможна MIG‑сегментация под лёгкие сессии: https://cloudcompute.ru/solutions/mig/

Индексы относительны; итог зависит от сцены/эффектов/поста.

Конфиги и скелеты

1) Sunshine (Linux) как сервис + NVENC

systemd‑юнит:

# /etc/systemd/system/sunshine.service
[Unit]
Description=Sunshine host (WebRTC/NVENC)
After=network-online.target nvidia-persistenced.service
[Service]
User=sun
Group=sun
Environment=TMPDIR=/nvme/tmp
ExecStart=/usr/local/bin/sunshine --config /etc/sunshine/config.json
Restart=always
RestartSec=3
LimitNOFILE=1048576
[Install]
WantedBy=multi-user.target

Фрагмент config.json:

{
 "encoders": {
 "video": {
 "codec": "hevc", // h264|hevc|av1 (при наличии)
 "bitrate": "18000k",
 "max_bitrate": "24000k",
 "bframes": 3,
 "gop": 120,
 "lookahead": 32,
 "aq_spatial": true,
 "aq_temporal": true,
 "low_latency": true
 },
 "audio": { "codec": "opus", "bitrate": "160k" }
 },
 "capture": { "fps": 60, "cursor": true },
 "network": { "webrtc": true, "min_port": 30000, "max_port": 30999 }
}

NVENC‑подготовка (опционально):

# Зафиксировать persistence и включить приложение на стабильных частотах (если поддерживается)
sudo nvidia-smi -pm 1
# nvidia-smi -ac <mem,graphics> # используйте, если разрешено политиками

2) Профиль Parsec (Windows) — параметры стрима (концепт)

; %ProgramData%Parsecconfig.txt (пример ключевых параметров)
renderer_backend=dxgi
encoder=h264 ; hevc/av1 при поддержке
bandwidth=20000 ; кбит/с
fps=60
v_sync=0
min_qp=18
max_qp=28
gop=120
low_latency=1

Для 4K/фотореализма поднимайте bandwidth и переходите на HEVC/AV1; для совместимости — H.264.

3) Пул станций и брокер сессий (Compose)

services:
 session-broker:
 image: registry.local/gpu-remote-broker:latest
 environment:
 - AUTH_MODE=sso
 - POLICY_NO_FILETRANSFER=true
 - POLICY_CLIPBOARD=read-only
 ports: ["443:8443"]
 networks: [studio-net]
 ws-01:
 image: registry.local/sunshine-host:latest
 deploy: { resources: { reservations: { devices: [ { capabilities: ["gpu"] } ] } } }
 environment:
 - SUNSHINE_CONFIG=/etc/sunshine/config.json
 volumes:
 - /nvme/ws01:/nvme
 - /etc/sunshine/ws01.json:/etc/sunshine/config.json
 networks: [studio-net]
 ws-02:
 image: registry.local/sunshine-host:latest
 deploy: { resources: { reservations: { devices: [ { capabilities: ["gpu"] } ] } } }
 volumes:
 - /nvme/ws02:/nvme
 - /etc/sunshine/ws02.json:/etc/sunshine/config.json
 networks: [studio-net]
networks:
 studio-net: {}

4) Дашборд телеметрии (SSE для панели)

# SSE эндпоинт с ключевыми метриками стрима
from fastapi import FastAPI
from fastapi.responses import StreamingResponse
import json, time
app = FastAPI()
def stream():
 while True:
 payload = {
 "ts": time.time(),
 "fps_actual": 60,
 "input_to_pixel_ms": 85,
 "nvenc_utilization": 0.55,
 "gpu_memory_used_bytes": 18_000_000_000,
 "net_rtt_ms": 18
 }
 yield f"data: {json.dumps(payload)}nn"
 time.sleep(1)
@app.get("/events")
def events():
 return StreamingResponse(stream(), media_type="text/event-stream")

См. стриминг/UI: https://cloudcompute.ru/solutions/gradio-fastapi/ Наблюдаемость/метрики/алерты

Опорные страницы: https://cloudcompute.ru/solutions/monitoring-logging/ и https://cloudcompute.ru/solutions/llm-inference/observability/

Интерактив:

  • input_to_pixel_latency_ms (p50/p95) — ключевая целевая метрика.
  • frame_time_seconds (p50/p95), fps_actual, frame_drop_total.
  • nvenc_utilization, nvenc_sessions, gpu_utilization, gpu_memory_used_bytes.
  • net_rtt_ms, jitter_ms, egress_mbps, ingress_mbps.
  • ddc_hit_rate, shader_cache_hits_total — для DCC/UE. См. https://cloudcompute.ru/solutions/rendering/unreal/

Алерты:

  • p95 input_to_pixel_latency_ms > SLA (например, > 120 мс для 60 FPS) N минут.
  • nvenc_utilization ~ 100% или nvenc_sessions → лимит — рассредоточить нагрузки/добавить станции.
  • gpu_memory_used_bytes → VRAM‑потолок — перейти на больший профиль/оптимизировать сцену.
  • ddc_hit_rate низкий — прогрев кэша перед сессией на NVMe.

Экономика и формулы

См. https://cloudcompute.ru/solutions/cost-planner/ и https://cloudcompute.ru/solutions/throughput-vs-latency/

Стоимость сессии:

Cost_per_hour = c_gpu / U_session # учёт реальной занятости

Cost_per_day = 8 * Cost_per_hour # условный рабочий день

Пул станций (N активных одновременно):

Cost_pool_per_hour = Σ_i (c_gpu_i / U_session_i)

Трафик (при тарификации egress):

Cost_egress_per_hour ≈ egress_mbps * 3600 / 8 * c_per_GB

Выбор кодека:

  • Если канал ограничен → HEVC/AV1 при сохранении качества.
  • Если совместимость важнее → H.264, но выше egress_mbps.

Производительность: практики

  • NVENC пресеты. Включайте low_latency, корректируйте lookahead, AQ (spatial/temporal), GOP согласуйте с целевым FPS.
  • Разрешение/битрейт. Балансируйте с учётом сцены: фотореал/мелкие детали → повышайте битрейт/HEVC/AV1.
  • DDC/Shader‑кэш на NVMe. Прогревайте при старте, не чистите между сессиями. См. https://cloudcompute.ru/solutions/storage-data/
  • Сеть. По возможности приоритизируйте трафик стрима, минимизируйте джиттер; пиннгуйте регион ближе к команде.
  • 1 процесс = 1 GPU. Для предсказуемой латентности не делите GPU между интенсивными задачами интерактива.
  • План деградации. При росте input_to_pixel — автоматически снижать разрешение/битрейт/фильтры.

Безопасность/политики

См. https://cloudcompute.ru/solutions/security/

  • Доступ. SSO/2FA; привязка пользователей к проектам, IP‑allowlist.
  • Контент. Отключение файлообмена/буфера обмена по политикам; водяные знаки на видеопотоке.
  • Ключи и лицензии. Хранение секретов отдельно; запрет логирования; ограниченный egress только на лицензирование.
  • Аудит. Логирование входов/выходов, длительности, сетевых характеристик; ретеншн логов.

Траблшутинг (симптом → причина → решение)

**Симптом** **Причина** **Решение**
Чёрный экран/нет видео Нет NVENC/драйвер, конфликт захвата Проверить драйвер/право на NVENC, сменить метод захвата
Высокий input→pixel Джиттер/узкий канал/битрейт Включить low‑latency, снизить разрешение/битрейт, сменить кодек на HEVC/AV1
Рывки/дропы кадров Перегруз NVENC/CPU/I/O Уменьшить параллельные сессии, добавить станцию, проверить nvenc\_sessions
Размытость/бандинг Слишком низкий битрейт/квантизация Повысить битрейт, включить AQ, увеличить lookahead
Долго открывается проект Холодный DDC/Shader‑кэш Прогрев кэша на NVMe; не чистить между сессиями
OOM VRAM Сцена больше профиля Снизить качество/разрешение, закрыть лишние сцены, перейти на 48–80 ГБ
Нет звука/рассинхрон Аудиоустройство/частота Выбрать корректный output/частоту; перезапуск аудиосервиса
Нельзя скопировать файл Политика disabled Временное разрешение по тикету/проекту или SFTP‑канал по правилам

Как запустить в cloudcompute.ru

  1. Выбрать шаблон: https://cloudcompute.ru/solutions/templates/
  • «Remote GPU workstation (Parsec)» — Windows‑станция.
  • «Remote GPU workstation (Sunshine)» — Linux/WebRTC.
  • Параллельно — оффлайн‑очереди рендера/денойза: см. https://cloudcompute.ru/solutions/rendering/
  1. Профиль GPU: 24/48/80 ГБ по таблице выше; 4K‑сцены — 80 ГБ (HQ).
  2. Режим: On‑Demand для интерактива; фоновые задачи — в очереди с Interruptible (см. https://cloudcompute.ru/solutions/interruptible-patterns/).
  3. Хранилище/кэш: «тёплое» для проектов, NVMe — DDC/Shader/темп. См. https://cloudcompute.ru/solutions/storage-data/
  4. Наблюдаемость: дашборды p50/p95, GPU, NVENC, сеть. См. https://cloudcompute.ru/solutions/monitoring-logging/
  5. CI/CD: закрепить версии драйверов/клиентов/плагинов, smoke‑сценарии запуска DCC. См. https://cloudcompute.ru/solutions/containers-ci-cd/
  6. Безопасность: SSO/2FA, политики копирования, водяные знаки, аудит. См. https://cloudcompute.ru/solutions/security/

Чек‑лист перед продом

  • Целевое p95 input_to_pixel_latency_ms определено (например, ≤ 120 мс для 60 FPS).
  • NVENC/кодеки включены; пресеты low‑latency и AQ/Lookahead настроены.
  • DDC/Shader‑кэш на NVMe прогревается; ddc_hit_rate высокий.
  • Политики безопасности (клипборд/файлы/водяные знаки) задеплоены.
  • Дашборды: latency/FPS/NVENC/GPU/RTT; алерты p95.
  • Пул станций и брокер сессий обкатывают нагрузку (конкурентные сессии).
  • Экономика (Cost_per_hour, Cost_pool_per_hour, Cost_egress_per_hour) посчитана.
  • План деградации качества при сетевых проблемах согласован.

Навигация

Готовы запустить?

Запустить GPU-сервер