AIKraft Agents
Главная/Блог/Гайд/NVIDIA Snapshot: Ускорение…
Гайд4 мин чтения · 11 ноября 2026 г.

NVIDIA Snapshot: Ускорение GPU-инференса в Kubernetes

NVIDIA Snapshot — это open-source система чекпоинтов для GPU, позволяющая запускать и восстанавливать LLM-модели за секунды вместо минут. Разбираем архитектуру, бенчмарки и практическое применение.

NVIDIA Snapshot: Ускорение GPU-инференса в Kubernetes

В мире крупномасштабных языковых моделей (LLM) время «холодного старта» (cold start) остается одной из самых серьезных проблем для инфраструктурных команд. Когда спрос на инференс резко возрастает или узел кластера выходит из строя, наличие свободных GPU-ресурсов не гарантирует мгновенной доступности сервиса. Инициализация рабочей нагрузки LLM — процесс загрузки весов модели, компиляции ядров и захвата CUDA-графов — может занимать от нескольких минут до десятков минут. В это время система не может обслуживать запросы, что приводит к задержкам и потенциальной потере пользователей.

Чтобы решить эту проблему, NVIDIA представила NVIDIA Snapshot — новую открытую компоненту платформы DSX AI Factory. Это система чекпоинтов и восстановления (checkpoint and restore), разработанная специально для GPU-нагрузок в Kubernetes. Snapshot позволяет захватить полностью инициализированное состояние как CPU, так и GPU памяти и восстановить его на совместимой инфраструктуре за считанные секунды. Это не просто быстрая загрузка контейнера; это восстановление состояния вычислительного процесса после того, как все тяжелые операции по подготовке модели уже были выполнены.

01Как работает NVIDIA Snapshot: от чекпоинта до восстановления

В основе подхода лежит идея повторного использования уже выполненной тяжелой работы. Вместо того чтобы каждый раз при масштабировании или восстановлении заново загружать терабайты весов и пересчитывать оптимизированные графы вычислений, Snapshot сохраняет «снимок» (snapshot) полностью готового к работе процесса.

Система предоставляет две основные операции для GPU-подов (Pod) в Kubernetes:

  1. Checkpoint (Чекпоинт): После того как рабочая нагрузка полностью инициализирована, система захватывает состояние CPU и GPU памяти, создавая переносимый артефакт. Этот шаг выполняется один раз для данной конфигурации модели.
  2. Restore (Восстановление): Новый Pod запускается из этого артефакта на любом узле с той же моделью GPU и драйвером. Процесс продолжает работу с места, где был сделан чекпоинт, полностью пропуская этапы загрузки весов, компиляции и захвата графов.

Обе операции интегрируются через кастомные ресурсы Kubernetes. Для создания чекпоинта работающего пода используется ресурс PodSnapshot. Для автоматического создания чекпоинта сразу после готовности пода применяется SnapshotJob. Для восстановления достаточно добавить аннотацию nvidia.com/restore-from к новому Pod, указав имя соответствующего PodSnapshot.

Последовательность холодного старта: от проvisioning машины до захвата CUDA-графов
Последовательность холодного старта: от проvisioning машины до захвата CUDA-графов

Важно отметить, что для работы системы требуется минимальное взаимодействие с приложением: workload должен уметь делать небольшой «рукопожатие» (handshake) для паузы перед чекпоинтом и возобновления работы после восстановления. В репозитории NVIDIA уже есть готовые примеры интеграции для популярных движков инференса: vLLM, SGLang и NVIDIA TensorRT LLM.

Поддержка параллелизма и больших моделей

Snapshot не ограничивается однопроцессными задачами. Он поддерживает работу с многопроцессными workload, распределенными по нескольким GPU в рамках одного узла. Это критически важно для современных больших моделей, использующих стратегии параллелизма:

  • Tensor Parallelism (TP): Разделение матричных операций между несколькими GPU.
  • Data and Expert Parallelism (DEP): Используется в моделях типа Mixture-of-Experts (MoE) для распределения данных и экспертов.
  • Decode Context Parallelism (DCP): Оптимизация процесса декодирования.

Система способна создавать единый артефакт чекпоинта для моделей с весом до 1 ТБ, распределенных по 8 GPU. Это позволяет мгновенно восстанавливать сложные архитектуры MoE, которые в противном случае требовали бы огромных затрат времени на инициализацию.

💡
Ключевое преимущество. Snapshot пропускает не только загрузку весов, но и этапы JIT-компиляции ядров (например, через torch.compile) и автонастройки (autotuning). Именно эти фазы часто занимают наибольшую долю времени при холодном старте, особенно для оптимизированных движков вроде TensorRT LLM.

02Архитектура восстановления: что происходит за секунды?

Чтобы понять, почему восстановление так быстро, нужно разобрать его внутреннюю структуру. Время восстановления в Snapshot делится на четыре этапа, каждый из которых оптимизирован для максимальной скорости:

  1. Agent Setup (Настройка агента): Агент Snapshot на узле находит артефакт чекпоинта в хранилище и подготавливает целевой Pod и GPU. Этот этап включает проверку совместимости и выделение ресурсов.
  2. CRIU Restore (Восстановление процесса Linux): Используется стандартный инструмент Linux — Checkpoint/Restore in Userspace (CRIU). Он читает образ процесса из хранилища в память хоста. Скорость этого этапа сильно зависит от производительности бэкенда хранения (в тестах использовался VAST NFS).
  3. CUDA Restore (Восстановление состояния GPU): Состояние GPU (включая веса и внутренние буферы) копируется обратно в память видеокарт. Это часто является самым длительным этапом для больших моделей из-за объема передаваемых данных.
  4. Wake/Remap (Пробуждение и маппинг): Процесс адаптируется к новому узлу (например, обновляются сетевые адреса), и движок инференса пробуждается, готовый принимать запросы.
Этапы восстановления через Snapshot: настройка агента, CRIU, CUDA и пробуждение
Этапы восстановления через Snapshot: настройка агента, CRIU, CUDA и пробуждение

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

Бенчмар

Источник: NVIDIA Developer ↗