NVIDIA Run:ai: оркестратор GPU для Kubernetes вышел под Apache 2.0

NVIDIA выложила полный исходный код платформы Run:ai на GitHub под лицензией Apache 2.0. Это среда оркестрации GPU-нагрузок для Kubernetes: планирование, квоты и управление задачами разработки, обучения и инференса на общих кластерах с ускорителями. Теперь платформенные команды могут изучать код, форкать его и разворачивать у себя без платной подписки. Релиз заодно включил Run:ai в состав платформы NVIDIA DSX AI Factory.

Важная оговорка: Run:ai работает поверх Kubernetes и не заменяет его. Бесплатная редакция сообщества не включает корпоративную поддержку NVIDIA — это прямо указано в описании релиза.

Четыре компонента, которые можно брать по отдельности

NVIDIA разбила поставку на модули, и каждый внедряется независимо от остальных:

  • KAI Scheduler — планировщик, встроенный в Kubernetes. Лицензия Apache 2.0, проект в статусе CNCF Sandbox. Умеет групповое планирование (gang scheduling), справедливое распределение по времени, учёт топологии, упаковку (bin-packing) и поддержку DRA.
  • GPU Fractioning Operator — дробление GPU на части средствами CUDA 13.4. Драйвер CUDA обеспечивает жёсткий лимит памяти на каждую нагрузку. NVIDIA отказалась от прежнего проприетарного механизма дробления в пользу этого подхода. Оператор не привязан к конкретному планировщику и отдаёт метрики по каждому поду.
  • KAI Resource Management — проекты, подразделения, квоты и пулы узлов. В примере NVIDIA за исследовательской командой закрепляется 50% кластера.
  • Workload Map — библиотека на Go, описывающая типы нагрузок: PyTorchJob, RayCluster, сервисы KServe. Работает офлайн и сама ничего не планирует, не ставит в очередь и не масштабирует.

Точка входа для пользователей — веб-интерфейс, CLI, REST API и MCP-сервер для ИИ-ассистентов. Панель управления отвечает за приём задач, управление ресурсами и мониторинг, а кластерные сервисы на каждом кластере добавляют планирование с учётом GPU.

Локальная сборка без видеокарты

Для разработки достаточно одного скрипта local-dev.sh. Он собирает из исходников примерно 50 Go-сервисов внутри контейнеров, а затем поднимает пятиузловой кластер Kind, закреплённый на Kubernetes v1.32.5. Поддельный GPU-оператор имитирует 8 ускорителей Tesla-A10, так что реальное железо не нужно.

Поддерживаются хосты macOS и Linux на amd64 или arm64. Windows в списке нет. Требования к Linux-хосту: 4 CPU, 16 ГБ оперативной памяти и 100 ГБ свободного диска. Виртуальным машинам Podman на macOS нужно минимум 12 ГБ памяти. Одна полная сборка оставляет около 44 ГБ кэшей.

Флаг --gpu-operator переключает сборку на настоящие GPU NVIDIA. Этому режиму нужны Linux, Docker и NVIDIA Container Toolkit. Ускорители AMD и Intel не поддерживаются.

Как развернуть в продакшене

Разворачивать можно из исходников или через Helm-чарт NGC Community Product. Эта редакция не требует платной подписки, но и корпоративной поддержки NVIDIA в ней нет. Ещё один путь — восемь партнёров экосистемы DSX: Crusoe, Mirantis, Nebius, OpenNebula Systems, Rafay, Saturn Cloud, Spectro Cloud и vCluster. Коммерческие редакции с поддержкой по-прежнему доступны через NVIDIA AI Enterprise, NVIDIA Mission Control и отдельные облачные маркетплейсы.

Чем Run:ai отличается от других планировщиков

Сравнивать её с Volcano, Kueue и Apache YuniKorn стоит по охвату. Все четыре проекта выходят под Apache 2.0, но три последних решают узкую задачу: планирование или постановку в очередь. Volcano развивается в CNCF со статусом Incubating, Kueue — в kubernetes-sigs (wg-batch), YuniKorn — в Apache Software Foundation. Run:ai же поставляет полноценную платформу управления поверх собственного планировщика.

По функциям картина такая. Групповое планирование есть у Run:ai, Volcano и YuniKorn, а у Kueue оно реализовано через таймаут «всё или ничего». Иерархия квот: у Run:ai — проекты, подразделения и пулы узлов, у Volcano — многоуровневые очереди, у Kueue — когорты и справедливое распределение, у YuniKorn — иерархические очереди. Совместное использование GPU: у Run:ai — дроби через CUDA 13.4 с жёсткими лимитами памяти, у Volcano — vGPU и динамический MIG, у Kueue — квоты GPU на базе DRA без дробления в обзоре, у YuniKorn данные не раскрыты. Учёт топологии заявлен у Run:ai, Volcano и Kueue; у YuniKorn не раскрыт. Мультикластерность есть у Run:ai через панель управления, у Volcano и у Kueue через MultiKueue; по YuniKorn данных нет. Заменять kube-scheduler Run:ai не собирается — она расширяет его через KAI Scheduler; YuniKorn, наоборот, предлагает себя как альтернативу стандартному планировщику.

Что идёт в комплекте

Рядом с платформой поставляются два смежных проекта. Model Streamer заливает веса моделей напрямую в память GPU; включить его в vLLM и SGLang можно флагом --load-format runai_streamer. В опубликованном Microsoft тесте на 8 виртуальных машинах с NVIDIA H100 загрузка шла в 3–6 раз быстрее, чем со стандартным загрузчиком, а пропускная способность держалась на 80 Гбит/с против примерно 40 Гбит/с на стандартном пути. Grove оркестрирует многосоставные нагрузки инференса: компоненты вроде prefill и decode запускаются как единое целое по принципу «всё или ничего».

Стоит подчеркнуть: собственного бенчмарка уровня платформы NVIDIA для этого релиза не публиковала. Цифры ускорения относятся к Model Streamer, а не к самому Run:ai.

Если вы уже присматриваетесь к открытым решениям для ИИ-нагрузок на Kubernetes, полезно сравнить подход Run:ai с открытым стеком TauGrid от Microsoft: там ставка сделана на нативность для Kubernetes, здесь — на полноценную панель управления и квоты. Для тех, кто выбирает между локальным инференсом на своём железе и кластером, пригодится разбор маршрутизатора NVIDIA PAIR.

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

Кого касается открытие кода Run:ai?

Платформенные команды и администраторы Kubernetes-кластеров с GPU NVIDIA, которым нужны квоты, справедливое распределение и дробление ускорителей между командами. Тем, кто просто запускает одну модель на одной машине, платформа избыточна.

Можно ли пользоваться бесплатно в продакшене?

Да, редакция сообщества не требует платной подписки. Но корпоративной поддержки NVIDIA в ней нет — при инциденте рассчитывать придётся на сообщество и собственные силы.

Нужна ли видеокарта, чтобы попробовать?

Нет. Локальная сборка поднимает кластер Kind с восемью имитированными Tesla-A10. Настоящие GPU нужны только при сборке с флагом --gpu-operator.

Подойдёт ли Windows для локальной разработки?

Нет, поддерживаются только macOS и Linux на amd64 или arm64. Для Linux-хоста нужно 4 CPU, 16 ГБ памяти и 100 ГБ свободного диска.

Заменит ли Run:ai стандартный планировщик Kubernetes?

Нет. Платформа работает поверх Kubernetes и расширяет его через KAI Scheduler, а не заменяет kube-scheduler.

Что даёт дробление GPU по CUDA 13.4?

Жёсткий лимит памяти на каждую нагрузку, который обеспечивает драйвер CUDA. Прежний проприетарный механизм дробления NVIDIA больше не развивает.

Поддерживаются ли ускорители AMD и Intel?

Нет, в режиме с реальным GPU-оператором поддерживаются только NVIDIA. Для AMD и Intel вариантов в релизе не заявлено.

Как развернуть платформу в продакшене?

Из исходников или через Helm-чарт NGC Community Product. Также доступны восемь партнёров экосистемы DSX, а коммерческие редакции с поддержкой — через NVIDIA AI Enterprise и NVIDIA Mission Control.

Есть ли бенчмарк самого Run:ai?

Нет, NVIDIA не публиковала бенчмарк уровня платформы для этого релиза. Известные цифры в 3–6 раз относятся к загрузке моделей через Model Streamer на 8 виртуальных машинах с H100 в Azure.

Источник: marktechpost.com