NVIDIA 正在将完整的 NVIDIA Run:ai 平台作为开源软件提供,使客户、开发者和生态系统合作伙伴能够使用生产级 AI 工作负载和 GPU 编排功能。此版本通过将 NVIDIA Run:ai 建立为一个开放的基础,扩展了 NVIDIA DSX AI 工厂平台,使更广泛的生态系统能够更快地将差异化解决方案推向市场,以满足不断变化的客户需求。
在过去几年中,NVIDIA Run:ai 通过动态分配 GPU 资源和管理从数据处理、训练到推理的整个生命周期中的工作负载,帮助组织在 Kubernetes 上大规模运行 AI 工作负载。
通过将 NVIDIA Run:ai 平台功能开源为 NVIDIA DSX AI Factory 的一部分,每个 NVIDIA DSX 生态系统合作伙伴和 AI 云现在都可以提高工作负载吞吐量、提高 GPU 利用率,并更高效地运营共享 AI 基础设施。
本文详细介绍了开源版本,其中包括完整的 NVIDIA Run:ai 平台 和四个也可独立采用的组件: KAI Scheduler、GPU Fractioning Operator、KAI 资源管理、Workload Map。这些组件与其他平台代码共同构成了集成式 NVIDIA Run:ai 平台。平台团队和生态系统合作伙伴可以将 NVIDIA Run:ai 作为一个集成的整体,在此基础上为自己的产品和服务进行构建,或者根据自己的需求集成各个组件。
如何采用开源 NVIDIA Run:ai
NVIDIA Run:ai 可直接用作开源软件,也可通过 NVIDIA DSX 生态系统合作伙伴提供的产品加以采用。
直接部署开源平台
NVIDIA Run:ai 的完整源代码可在 NVIDIA Run:ai 库 中获取。团队可以检查代码、为其开发做出贡献、基于平台进行构建或独立采用其模块化组件。
完整的开源 NVIDIA Run:ai 平台也作为社区产品在 NVIDIA NGC 上提供,并提供用于安装集成堆栈的 Helm 图表。
注意:NVIDIA Run:ai 源代码受其适用的开源许可证的约束。从 NGC 下载社区产品需要接受适用于 NVIDIA AI 产品的 NVIDIA 软件许可协议和产品特定条款。社区产品无需付费的 NVIDIA Run:ai 订阅或 NVIDIA 支持权利,并且不包括 NVIDIA 企业支持。
通过 NVIDIA DSX 生态系统合作伙伴采用开源 NVIDIA Run:ai
开源 NVIDIA Run:ai 使 NVIDIA DSX 生态系统合作伙伴能够直接访问 AI 工作负载和 GPU 编排创新,以便在自己的 NVIDIA DSX AI 工厂解决方案中使用。通过采用完整的平台或集成单个组件,合作伙伴可以更快地将这些创新推向市场,并更快地响应不断变化的客户和运营需求。
- Crusoe集成了NVIDIA Run:ai与Crusoe Managed Kubernetes,将GPU工作负载编排与托管Kubernetes和GPU基础设施相结合。
- Mirantis 通过 NVIDIA Run:ai 扩展 k0rdent AI,提供生命周期管理的 Metal-to-Model AI 工厂堆栈,实现基础设施配置自动化并更大限度地提高 GPU 利用率。
- Nebius 在 Nebius AI Cloud 中提供 NVIDIA Run:ai 作为一键式应用部署,使客户能够以简化的方式在 Nebius Kubernetes 托管服务上部署和运行完整平台。
- OpenNebula Systems 通过 OneKS 将 NVIDIA Run:ai 与 OpenNebula AI Cloud Platform 集成,将 GPU 工作负载编排与开放和主权 AI 云的基础设施配置和生命周期管理相结合。
- Rafay 正在扩展其 NVIDIA Run:ai 集成,将其作为完全托管服务提供。Rafay 实现了从 GPU 基础设施和集群到 NVIDIA Run:ai 控制平面和租户的整个堆栈的自动化,因此 AI 云提供商和企业可以通过自己的自助服务目录提供。
- Saturn Cloud 集成了 NVIDIA Run:ai,帮助 AI 云运营商通过其 Token Factory 平台推出白标 AI 推理服务,将 GPU 编排与专用和多租户模型服务、每 token 计量和自动计费相结合。
- Spectro Cloud 将 NVIDIA Run:ai 集成到 PaletteAI 中,使客户能够通过 PaletteAI Studio 进行部署,并以与 AI 基础设施相同的生命周期自动化方式进行管理。
- vCluster 通过预先验证的部署模板提供 NVIDIA Run:ai,这些模板为每个租户提供了一个完整的环境,使运营商能够加强租户边界,同时 NVIDIA Run:ai 继续在一个 GPU 集群中进行调度。
对于 NVIDIA Enterprise AI Factory 部署,NVIDIA Run:ai 继续通过 NVIDIA 支持的商业产品提供,包括作为独立产品、通过 NVIDIA Mission Control 和 NVIDIA AI Enterprise 以及选定的云市场提供。可用性、许可和支持条款因产品而异。
对于已经拥有平台但需要填补特定能力差距的团队,以下各节将介绍何时以及如何独立使用每个模块化组件。
NVIDIA Run:ai 平台的模块化开源组件
本节将详细介绍开源版本中包含的四个组件:KAI 调度程序、GPU 分运算符、KAI 资源管理和工作负载地图。借助额外的平台代码,这些组件构成了集成的 NVIDIA Run:ai 平台。您可以将 NVIDIA Run:ai 作为集成整体,也可以根据您的独特要求集成单个组件。
KAI 调度器:NVIDIA Run:ai 背后的调度引擎
KAI Scheduler 是 Kubernetes 原生调度程序,为 NVIDIA Run:ai 平台提供支持。NVIDIA 根据 Apache 2.0 许可将 KAI Scheduler 作为开源软件发布,并将其作为沙盒项目提供给 CNCF。KAI 仍然是 NVIDIA Run:ai 背后的上游引擎,所有调度器开发都在社区库中进行,因此每次改进都通过相同的代码库进行。NVIDIA 将继续为该项目的维护人员提供支持,并与更广泛的生态系统合作,大规模推进 AI 工作负载调度。
KAI Scheduler 专为大规模 GPU 工作负载而构建,可协调:
- 使用预调度内存模拟进行帮式调度,以便多舱作业全部或全部放置,不会被不必要地逐出
- 公平分享 (包括基于时间的公平分享) 和配额分配,保持各团队资源共享的平衡
- 调度决策级别的拓扑感知和 Bin – Packing
- GPU 共享:允许多个工作负载共享单个或多个 GPU ( MIG、MPS、时间共享、HaMi、CUDA 13.4 MPS 分数)
- 动态资源分配 (DRA) 支持
如需详细了解主要功能,请访问 kai-scheduler/ KAI-Scheduler GitHub 资源库。
使用 KAI Scheduler 处理需要公平访问集群资源和拓扑感知布局的各种 AI 工作负载。无需完整的 NVIDIA Run:ai 平台,即可将其与当前的软件堆栈一起部署在现有集群中。
关注该项目,在 CNCF Slack 上的# kai-scheduler 频道提问,并在 kai-scheduler/ KAI-Scheduler GitHub 资源库中做出贡献。
GPU 分数运算:Kubernetes 上 GPU 分数运算符
NVIDIA Run:ai 平台长期以来一直支持分数 GPU 分配,使多个工作负载能够通过硬盘内存隔离共享一个 GPU。可以按需请求分数并进行即时设置,无需管理员事先针对每个节点进行设置。在运行不需要 GPU 全部内存的工作负载 (包括交互式笔记本和适用于较小模型的推理) 的 ML 团队中,它是使用最广泛的功能之一。NVIDIA Run:ai 通过专有实现开创了这种体验。
GPU Fractioning Operator 将 CUDA 原生 GPU 分引入 Kubernetes,并且专有实现已停用,转而使用 CUDA 13.4。 中提供的原生功能。CUDA 驱动程序对每个工作负载的 GPU 显存都实施了硬限制,并且每个工作负载只能看到分配给其部分的 GPU 显存。我们仍然需要一种在 Kubernetes 上使用它的简洁方式。这就是 GPU Fractioning Operator 提供的:一个在集群上启用 CUDA GPU 分数的运算符,以及一个指标导出器,用于对使用中的分数进行监控。它是一个 Kubernetes 集成层,允许工作负载使用 CUDA 原生分数,并且与调度程序无关。
对于可能共享未充分利用的 GPU 容量的工作负载,包括笔记本电脑、开发会话和较小的模型,使用 GPU Fractioning Operator。GPU Fractioning Operator 与 KAI Scheduler 集成,可将可用的 GPU 容量转换为实际的放置决策,同时保持与其他调度器兼容。
GPU Fractioning Operator 将 CUDA 13.4 原生 GPU 分引入 Kubernetes,并与 KAI Scheduler 集成。要开始使用,请参阅 GPU Fractioning Operator 文档。
KAI 资源管理:组织层
在调度程序决定工作的放置方式的同时,KAI 资源管理器还会决定哪些人可以获得:
- 项目和部门:组织结构或“组织层”,将资源映射到使用这些资源的团队和计划。
- 具有组织层次结构的资源管理:能够在该组织结构中分配、保证和共享 GPU 容量,并具有公平分配和配额语义。
- 节点池:对异构硬件进行分组和定位,以便将工作负载投放到合适的资源上。
这些功能相结合,可让平台团队超越原始 Kubernetes 调度,按照组织的实际运营方式 (按团队、按部门、按举措和按资源保证) 管理 GPU。
对于需要定义容量共享的多个团队共享的异构集群,使用 KAI 资源管理。例如,平台团队可以保证 50% 的集群用于研究,同时防止任何团队独占剩余的容量。如果您已在电子表格或每个团队的手动命名空间中跟踪配额授权,此层将取代该层。它可以与集群中的 KAI Scheduler 结合使用。
如需详细了解这些概念如何映射到实际部署,请参阅KAI 资源管理文档。
工作负载地图:适用于 Kubernetes 的工作负载管理合同
工作负载地图是 NVIDIA Run:ai 用于支持任何工作负载类型的合同。KAI Scheduler 将其用于调度和帮组语义;平台的其余部分将其用于工作负载发现、监控和生命周期管理。
在 Kubernetes 中,AI 工作负载几乎绝不是简单的部署或工作。它是 PyTorchJob、RayCluster、JobSet、KServe InferenceService、Dynamo 图形部署或公司自己的自定义资源。每种类型都有自己的内部结构、具有不同角色的组件 (驾驶员和工作人员、主管和工作人员、预填充和解码) 、自己的缩放和帮组语义,以及自己的状态报告方式。
工作负载映射提供了一种一致的方法,可在工作负载的整个生命周期中将其作为一流对象处理:
- 描述 POD、组件和角色
- 提交和配置
- 利用帮式和拓扑感知进行调度
- 持续观察状态和运行状况
- 在准入或运行时应用策略
此工作负载管理层位于 Kubernetes 基元与调度程序、控制面板、SRE 和故障排除工具、成本工具、备份工具以及为用户提供服务的 ML 平台之间。工作负载地图并非每个工具都能为每个 CRD 构建私有的部分集成,而是会对每种工作负载类型定义一次,以便任何平台或工具都能一致地调度、观察、采取行动和治理工作负载,而无需对每个 CRD 进行硬编码。
将工作负载映射用于必须理解和管理多种 Kubernetes 工作负载类型的平台和工具,而无需对每个 CRD 进行硬编码。它作为一个 Go 库附带,可以离线处理非结构化对象,因此您无需向集群添加任何内容即可采用它。它特意缩小范围:工作负载地图描述的是工作负载结构,而不是跨集群调度、排队、自动扩展或传播。
如需了解详情,请访问 dsx-ai-factory/workload-map GitHub 资源库,并查看 采用者项目。
相关开源平台软件
以下开源项目解决了互补的 AI 基础设施挑战。它们可以独立采用,也可以整合到更广泛的解决方案中,其中包括完整的 NVIDIA Run:ai 平台或选定的组件。
模型 Streamer:降低冷启动延迟
在 Kubernetes 上冷启动推理工作负载可能需要几分钟时间,在此期间,GPU 会被分配,但会在一个步骤中处于空闲状态:将模型权重从存储设备加载到 GPU 上。Model Streamer 可同时读取权重,并将其直接流式传输到 GPU 显存中,从而缩短大型模型的加载时间。
自发布以来,Model Streamer 已在整个推理堆栈中得到采用,包括推理引擎、云提供商和存储平台供应商。
推理引擎
Model Streamer 在 vLLM 和 SGLang 中集成了上游模型,可通过 --load-format runai_streamer 标志以及 ModelExpress 启用。支持范围包括本地文件系统、兼容 S3 的存储和网络文件共享,以及下文详述的多个云后端。
云
现在,主流云提供商会在自己的指南中记录 Model Streamer。
- AWS:Model Streamer 包含在 vLLM 深度学习容器 中,是 EKS 官方文档中运行 AI/ ML 推理 的推荐快速路径,并针对 S3 调整了并发性和块大小。
- Google Cloud:与 NVIDIA 合作构建的原生云存储支持,包括用于直接从存储桶流式传输到加速器内存的 GKE 文档。
- Microsoft Azure:Microsoft 和 NVIDIA Run:ai 联合开发的 Azure Blob Storage 集成,为 Azure 客户提供一流的模型流。在 8 台 NVIDIA H100 VM 上发布的基准测试显示,加载速度比默认加载程序快 3 – 6 倍,并且稳定为 80 Gbps,而默认路径的加载速度约为 40 Gbps。
存储平台
多家 AI 数据基础设施合作伙伴已对 Model Streamer 进行独立基准测试,并发布了相关结果:
- WEKA 加载到 GPU 显存只需 3.5 秒,比从本地 NVMe 加载快约 40%,使组织能够构建 PB 级共享模型资源库,从而加速模型就绪,而无需花费时间、精力和容量在推理环境中维护重复的模型副本。
- VAST Data 测量为 1.7 秒,比从本地 NVMe 加载时提高 60%
- DDN 在 4 秒内将 65.5 GB Qwen3-32B 串流到 8 个 GPU 上,并转化为成本:与使用本地存储相比,可节省高达 10% 的 GPU 日常运行时间。
在启动新副本时使用 Model Streamer,加载模型权重是主要瓶颈。
Grove:一个 API,任何推理架构
新兴的工作负载模式 (包括代理式工作流、分解服务和混合专家训练) 由多个互联组件组成,这些组件必须一起扩展。Grove 提供了一个 Kubernetes API,用于编排这些工作负载,从单个 POD 到跨越数万个 GPU 的部署。
Grove 提供拓扑感知型自动缩放和分层组调度功能,允许预填充和解码等组件以“全无”单元的形式开始。在 NVIDIA GB200 NVL72 上,它还可以自动管理 ComputeDomain 资源,从而通过单个标注实现多节点 NVLink 性能,而不是手动编写 YAML。
Grove 是 NVIDIA Dynamo 的模块化组成部分,可独立使用,并且已为多家公司的大规模训练和推理工作流提供支持。最近的工作包括支持 llm-d 和 Volcano 作为调度程序后端,并正在进行 Kueue 支持。
使用 Grove 处理具有不同角色和合扩展要求的基于图形的工作负载。
开始使用开源 NVIDIA Run:ai
NVIDIA Run:ai 现已在 NVIDIA DSX AI Factory GitHub 组织中以开源软件的形式提供。如需了解详情并开始使用,请查看以下资源:
- NVIDIA Run:ai 完整平台
- KAI 调度器调度引擎
- 适用于项目、部门、名额和节点池的 KAI 资源管理
- Kubernetes 上 CUDA GPU 分数的 GPU 分运算符,以及每个 POD 指标
- 工作负载地图工作负载管理合同
相关开源项目包括:
我们很高兴将这项工作带给社区,并在开放环境中构建新一代 AI 工作负载和 GPU 编排。欢迎您的贡献、问题和反馈。