Опубликовано:
NVIDIA выпустила открытый Workload Map для описания ИИ-нагрузок в Kubernetes
NVIDIA Workload Map описывает распределённые нагрузки Kubernetes одинаково для JobSet, Ray, KServe и других фреймворков. Каталог включает 13 готовых описаний, код открыт под Apache 2.0.
NVIDIA выпустила NVIDIA Workload Map — открытый компонент для Kubernetes, который описывает структуру распределённых ИИ-нагрузок одинаково для разных фреймворков. Проект состоит из Custom Resource Definition и библиотеки на Go, которая читает такие описания. Код открыт под лицензией Apache 2.0 и уже используется в продакшене NVIDIA Run:ai.
На Kubernetes распределённая задача устроена как дерево ресурсов: группы подов с ролями, числами реплик, шаблонами и статусом. JobSet, LeaderWorkerSet и другие custom resources описывают это по-своему, поэтому планировщикам, панелям и инструментам учёта расходов нужен отдельный адаптер под каждый тип нагрузки. Workload Map переносит эти знания в YAML-описание: где искать шаблоны подов, как считать реплики и как переводить статус в общие фазы.
В каталог входят 13 готовых описаний: JobSet, PyTorchJob, RayCluster, RayJob, RayService, KServe, Knative, MPIJob, NVIDIA NIM, LeaderWorkerSet, Milvus, Grove PodCliqueSet и NVIDIA Dynamo. Для нового типа достаточно написать своё описание. Раньше проект назывался Karta, и имя ресурса в CRD осталось прежним.
В примере из статьи JobSet состоит из одного leader и двух worker, каждому поду нужно 4 GPU. Без общего описания kubectl показывает три отдельные задачи, и суммарный запрос в 12 GPU приходится считать вручную. С описанием Workload Map CLI выводит дерево нагрузки с ролями, готовностью и общим расходом GPU.
Одно и то же описание используют разные инструменты. KAI Scheduler берёт из него данные для gang scheduling, то есть одновременного запуска группы подов, когда для типа нагрузки нет нативного плагина. NVIDIA Run:ai регистрирует тип нагрузки одним вызовом API и показывает её как одну задачу. В Nova от Elotl описания помогают выбирать кластер для распределённой нагрузки.
CLI ставится через Homebrew на macOS или Linux, для просмотра нагрузки достаточно kubeconfig: сам Workload Map в кластер устанавливать не нужно. Команда kli describe jobset/demo -n <namespace> показывает роли, фазу и расход GPU.
Проект доступен в GitHub-организации NVIDIA DSX AI Factory, описания распространяются как обычные манифесты и применяются к кластеру без пересборки инструментов.


