NVIDIA Snapshot: восстановление GPU-нагрузок за секунды вместо минут

NVIDIA выпустила Snapshot — открытый компонент платформы NVIDIA DSX AI Factory Platform для сохранения и восстановления состояния GPU-нагрузок в Kubernetes. Система снимает checkpoint полностью инициализированной нагрузки вместе с CPU- и GPU-памятью и восстанавливает её на совместимой инфраструктуре: инференс-реплика поднимается за секунды, а не за минуты. По замерам вендора, восстановление занимает от 3,6 до 42,7 секунды — это в 8–36 раз быстрее холодного старта.

Зачем это нужно: холодный старт съедает масштабирование

Когда спрос на инференс резко растёт или реплика падает, свободные GPU ещё не означают готовую ёмкость. Инициализация LLM-нагрузки — холодный старт — занимает минуты, и всё это время масштабирование и восстановление откладываются. Snapshot пропускает повторную инициализацию: загрузку весов, компиляцию, автоподбор параметров ядер и захват CUDA-графов. Подготовка инфраструктуры и загрузка контейнерного образа в измеряемое время восстановления не входят.

Изначально система создавалась для инференс-воркеров NVIDIA Dynamo, но другие инференс-движки, планировщики, контроллеры и платформы могут интегрировать её самостоятельно.

Как работают checkpoint и restore

Snapshot даёт две операции для GPU-подов.

  • Checkpoint. Когда нагрузка полностью инициализирована, её CPU- и GPU-память сохраняется в переносимый артефакт.
  • Restore. Новый под запускается из этого артефакта на любом узле с той же моделью GPU и тем же драйвером. Процесс продолжает работу с точки сохранения, поэтому загрузка весов, компиляция и захват графов пропускаются.

Обе операции используют кастомные ресурсы Kubernetes. Чтобы сохранить уже работающий под, создаётся PodSnapshot с его именем. Чтобы запустить под из шаблона и сохранить его сразу после готовности, создаётся SnapshotJob. Для восстановления новому поду добавляется аннотация nvidia.com/restore-from с именем нужного PodSnapshot. Нагрузке нужен лишь небольшой handshake: приостановиться перед checkpoint и продолжить после restore. В репозитории есть готовые примеры для vLLM, SGLang и NVIDIA TensorRT LLM.

Snapshot умеет сохранять и восстанавливать совместимые нагрузки, занимающие несколько GPU на одном узле, — единым артефактом по всем рангам. Это ускоряет старт больших mixture-of-experts (MoE) моделей со стратегиями параллелизма: tensor parallelism (TP), data and expert parallelism (DEP) и decode context parallelism (DCP). Нагрузки должны соответствовать требованиям Snapshot к checkpoint/restore и совместимости среды выполнения.

Результаты бенчмарков

Замеры проводились на GPU NVIDIA B200 с драйвером 615.71.09 и хранилищем VAST (NFS); использовались движки vLLM 0.31.0, SGLang 0.5.21 и TensorRT LLM 1.3.0. Модели — от 600 млн параметров до MoE с checkpoint-артефактами на 1 ТБ на восьми GPU.

Четыре главных вывода:

  • Восстановление уложилось в 43 секунды. Во всех конфигурациях Snapshot возвращал реплику за 3,6–42,7 с — в 8–36 раз быстрее холодного старта. Крупнейшие MoE с checkpoint около 600 ГБ – 1 ТБ на восьми GPU восстанавливались менее чем за 43 с против 6–19 минут холодного старта.
  • Восстановление пропускает больше, чем загрузку весов. Холодный старт включает загрузку весов, компиляцию и автоподбор ядер, захват CUDA-графов — Snapshot эти шаги не повторяет.
  • Checkpoint окупается уже на первой восстановленной реплике. Во всех протестированных конфигурациях время checkpoint плюс время restore было меньше одного холодного старта. Создание checkpoint занимало от 15 секунд до 5,5 минуты в зависимости от модели и конфигурации.
  • На больших восстановлениях доминирует перенос GPU-состояния. Для конфигураций MoE на восьми GPU восстановление GPU-состояния занимало 18–29 с, а восстановление CPU-процессов через CRIU — 4,2–10,8 с.

Пример из таблицы: Qwen3-0.6B на vLLM с TP1 — checkpoint 8,13 ГБ за 15,30 с, холодный старт 104,43 с, восстановление через Snapshot 4,66 с, ускорение 22,40x. Для DeepSeek-V4-Pro-NVFP4 на vLLM с TEP8: checkpoint 996,53 ГБ за 193,84 с, холодный старт 908,48 с, восстановление 39,56 с, ускорение 22,96x.

Среди этапов restore выделяются agent setup, CRIU restore (чтение образа процессов из хранилища в память хоста — скорость в основном задаёт бэкенд хранения), CUDA restore (копирование GPU-состояния обратно в память GPU) и wake/remap (адаптация процесса к новому узлу и пробуждение движка).

Опыт партнёров

Партнёры по разработке проверили Snapshot на собственных нагрузках. Crusoe, контрибьютор проекта, сократила время готовности подов GLM-5.3 с примерно 8 минут до 31 секунды на NVIDIA HGX B300. Saturn Cloud, платформа token factory, замерила Snapshot для инференса с масштабированием от нуля: старт vLLM сократился с 2–8,5 минуты до 6–34 секунд на NVIDIA HGX B300.

Как попробовать

Для запуска Snapshot с GPU-нагрузкой в Kubernetes нужно начать с инструкций по установке и руководств в репозитории NVIDIA Snapshot. Восстановление воркеров через NVIDIA Dynamo описано в отдельном руководстве. Обсудить интеграцию или оставить отзыв можно в issue или в Slack-воркспейсе NVIDIA Dynamo, в канале #snapshot-dev. Живые демонстрации обещают на стенде NVIDIA #170 на KubeCon.

Инструменты бенчмарков и инструкции по воспроизведению также доступны в репозитории.

Для администратора, который держит инференс на Kubernetes, смысл простой: если модель и конфигурация стабильны, а реплики часто перезапускаются или масштабируются, checkpoint можно снимать один раз и переиспользовать — при условии совпадения модели GPU и драйвера на целевом узле. Похожие задачи в экосистеме NVIDIA разбирались в материале про генерацию видео на восьми GPU с TensorRT multi-device в Dynamo-Triton и про расширение пространства сборок в TensorRT 11.1.

Частые вопросы

Что именно сохраняет Snapshot?

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

На каком оборудовании можно восстановить checkpoint?

На любом узле с той же моделью GPU и тем же драйвером. В бенчмарках использовались NVIDIA B200 и драйвер 615.71.09.

Сколько времени занимает восстановление?

От 3,6 до 42,7 секунды во всех протестированных конфигурациях — в 8–36 раз быстрее холодного старта, который занимает минуты.

Сколько стоит создать checkpoint?

От 15 секунд до 5,5 минуты в зависимости от модели и конфигурации. Во всех тестах checkpoint плюс restore оказались быстрее одного холодного старта.

Поддерживаются ли multi-GPU конфигурации?

Да. Snapshot сохраняет и восстанавливает нагрузку на нескольких GPU одного узла единым артефактом по всем рангам, включая MoE-модели с TP, DEP и DCP.

Какие движки уже поддерживаются?

В репозитории есть готовые примеры для vLLM, SGLang и NVIDIA TensorRT LLM. Изначально система создавалась для воркеров NVIDIA Dynamo.

Можно ли интегрировать Snapshot в свою платформу?

Да, система открытая и рассчитана на интеграцию другими инференс-движками, планировщиками, контроллерами и платформами. Обратная связь принимается в issue и в канале #snapshot-dev.

Что не входит в измеряемое время восстановления?

Подготовка инфраструктуры, загрузка контейнерного образа и настройка container runtime. Также перед каждым checkpoint освобождается KV-кэш, поэтому он не входит в артефакт.

Источник: developer.nvidia.com