NVIDIA 已将完整的 NVIDIA Run:ai 平台作为开源软件发布。该 源代码 以 Apache 2.0 许可证在 GitHub 上发布。NVIDIA Run:ai 开源版将生产级 GPU 调度、配额和工作负载管理交到开发者手中。此次发布使 Run:ai 成为 NVIDIA DSX AI Factory 平台的一部分。平台团队现在可以检查、派生并自行托管该技术栈,而无需付费订阅。
TL;DR
- 规模: 单一代码库(monorepo),包含控制平面、集群服务、安装程序、CLI 和 MCP 服务器。本地开发构建约 50 个 Go 服务。
- 运行环境: 配备 NVIDIA GPU 的 Kubernetes 或 OpenShift 集群。本地开发可在 macOS 或 Linux 上运行,使用 8 个模拟的 Tesla-A10 GPU,无需真实 GPU。
- 性能: NVIDIA 未为此次发布提供平台级基准测试。
- 最佳: 相关的 Model Streamer 在 Azure 上的 8 个 NVIDIA H100 虚拟机上加载模型的速度提升了 3 倍到 6 倍。
- 最差: 社区版没有 NVIDIA 企业支持。Linux 上的本地构建需要 16 GB 内存和 100 GB 磁盘空间。
什么是 NVIDIA Run:ai?
NVIDIA Run:ai 是 NVIDIA 推出的面向 Kubernetes 的 AI 工作负载和 GPU 编排平台。它在共享 GPU 集群上调度开发、训练和推理工作负载。它运行在 Kubernetes 之上,并不取代 Kubernetes。
控制平面负责工作负载提交、资源管理和监控。集群服务运行在每个 Kubernetes 集群上,提供 GPU 感知调度。用户可以通过 Web UI、CLI、REST API 以及面向 AI 助手的 MCP 服务器来使用它。
4 个模块化组件是什么?
NVIDIA 将此次发布拆分为 4 个团队可独立采用的组件:
- KAI Scheduler 是 Kubernetes 原生调度引擎。它采用 Apache 2.0 许可,并且是一个 CNCF 沙箱项目。它涵盖 gang 调度、基于时间的公平共享、拓扑感知、装箱(bin-packing)以及 DRA 支持。
- GPU Fractioning Operator 为 Kubernetes 带来 CUDA 13.4 原生的 GPU 切分。CUDA 驱动程序对每个工作负载实施硬性内存限制。NVIDIA 弃用了其较早的专有切分方案,转而采用这种方式。该 operator 与调度器无关,并导出按 Pod 的指标。
- KAI Resource Management 增加了项目、部门、配额和节点池。NVIDIA 的示例保证将集群的 50% 分配给一个研究团队。
- Workload Map 是一个描述 PyTorchJob、RayCluster 和 KServe 服务等工作负载类型的 Go 库。它可离线工作,不进行调度、排队或自动扩缩容。
开发人员如何在本地运行 NVIDIA Run:ai?
该 本地开发指南 基于 1 个脚本构建, local-dev.sh。它在容器内从源码构建大约50个Go服务。随后它创建一个固定使用Kubernetes v1.32.5的5节点Kind集群。一个模拟GPU operator模拟8块Tesla-A10 GPU,因此无需GPU硬件。
- 支持的主机:macOS 或 Linux,amd64 或 arm64 架构。不支持 Windows。
- Linux 主机需要 4 个 CPU、16 GB 内存和 100 GB 可用磁盘空间。
- macOS Podman 虚拟机至少需要 12 GB 内存。
- 1次完整构建会留下约44 GB的缓存。
该 --gpu-operator flag switches to real NVIDIA GPUs. 该模式需要 Linux、Docker 和 NVIDIA Container Toolkit。不支持 AMD 和 Intel 加速器。
团队如何在生产环境中部署它?
开发团队可以从源代码或从 NGC 社区产品 Helm chart。该版本无需付费订阅,但不包含 NVIDIA 企业支持。
团队也可以通过 8 家 DSX 生态系统合作伙伴采用它。这些合作伙伴是 Crusoe, Mirantis, Nebius, OpenNebula Systems, Rafay, Saturn Cloud, Spectro Cloud 以及 vCluster。受支持的商用版本继续通过 NVIDIA AI Enterprise、NVIDIA Mission Control 以及部分云市场提供。
有哪些相关的开源项目随之发布?
两个相关项目完善了这一技术栈。 Model Streamer 可将模型权重直接流式传输到 GPU 内存中。 vLLM 和 SGLang 支持该功能, --load-format runai_streamer.
Microsoft 的 已发布基准测试 使用了 8 台 NVIDIA H100 虚拟机。结果显示加载速度比默认加载器快 3 到 6 倍。吞吐量保持在 80 Gbps,而默认路径约为 40 Gbps。
Grove 可编排多组件推理工作负载。它将 prefill 和 decode 等组件作为全有或全无的单元启动。
NVIDIA Run:ai 与其他开源 Kubernetes 调度器相比如何?
| 特性 | NVIDIA Run:ai(开源) | Volcano | Kueue | Apache YuniKorn |
|---|---|---|---|---|
| 许可证 | Apache 2.0 | Apache 2.0 | Apache 2.0 | Apache 2.0 |
| 治理 | NVIDIA DSX AI Factory org(KAI Scheduler:CNCF Sandbox) | CNCF 孵化项目 | kubernetes-sigs(wg-batch) | Apache 软件基金会 |
| 范围 | 完整平台:控制平面、UI、CLI、REST API、MCP 服务器 | 批处理调度系统 | 作业排队控制器 | 调度器,默认调度器的替代方案 |
| 替换 kube-scheduler | 否,通过 KAI Scheduler 对其进行扩展 | 未披露 | 否 | 是,作为替代方案 |
| 成组调度(Gang scheduling) | 是 | 是 | 基于超时的全有或全无 | 是 |
| 配额层级 | 项目、部门、节点池 | 多级队列 | 队列组(Cohorts)、公平共享 | 分层队列 |
| GPU 共享 | CUDA 13.4 原生分数分配及硬内存限制 | vGPU、动态 MIG | 基于 DRA 的 GPU 配额;概览中未提及分数分配 | 未披露 |
| 拓扑感知 | 是 | 是 | 是 | 未披露 |
| 多集群 | 是,通过控制平面 | 是 | 是,MultiKueue | 未披露 |
| Web 用户界面 | 是 | 独立的仪表板项目 | 未披露 | 未披露 |
关键区别在于范围。Volcano、Kueue 和 YuniKorn 专注于调度或排队。Run:ai 则在其调度器之上提供了完整的管理平台。
要点总结
- NVIDIA Run:ai 现已在 Apache 2.0 许可证下完全开源。
- 4个组件可独立交付:KAI Scheduler、GPU Fractioning、Resource Management、Workload Map。
- GPU fractioning 现在使用 CUDA 13.4 原生内存隔离。
- 本地开发环境运行在带有8个模拟GPU的5节点 Kind 集群上。
- 免费版不包含 NVIDIA 企业支持。
欢迎查看 GitHub 仓库、 本地开发指南 和 NVIDIA 的技术博客。所有功劳归于该项目的研究者。另外,欢迎在 Twitter 上关注我们,也别忘了加入我们的 150k+ML SubReddit 并订阅 我们的通讯。等等!你用 Telegram 吗? 现在你也可以在 Telegram 上加入我们。
本文《 NVIDIA 在 Apache 2.0 下开源 Run:ai 用于 Kubernetes GPU 编排 》首发于 MarkTechPost.