NVCF:大规模部署和路由 GPU 加速 AI 工作负载
NVIDIA Cloud Functions (NVCF) 是一个用于大规模部署、管理和运行 GPU 加速工作负载的开源平台。它支持长期运行的函数和异步任务,利用 Kubernetes 进行编排,并提供统一控制平面、负载均衡路由、多集群自动缩放等功能。本文介绍了 NVCF 的架构、工作负载类型、核心能力以及如何使用 Bazel 构建。
NVIDIA Cloud Functions (NVCF) 是 NVIDIA 推出的一个开源平台,旨在简化 GPU 加速工作负载的部署、管理和扩展。该平台最初在 NVIDIA GTC 上发布,如今其代码已在 GitHub 上公开,供开发者自托管使用。NVCF 的核心目标是让 AI 推理、流处理和批处理等 GPU 密集型任务能够像调用云函数一样简单,同时保持对基础设施的灵活控制。
NVCF 的架构基于 Kubernetes,由三个主要平面组成:控制平面负责管理函数生命周期、API 暴露和状态协调;调用平面处理 HTTP、流和 gRPC 请求,进行路由和限流;计算平面通过 NVIDIA 集群代理 (NVCA) 与 GPU 节点集成,执行实际工作负载。这种设计支持跨区域和多 GPU 集群的部署,使工作负载可以就近路由,降低延迟。
平台定义了两类工作负载:函数 (Function) 和任务 (Task)。函数是长期运行的服务,适用于需要持续端点的推理或流处理场景;任务则是异步运行至完成的工作负载,适合批量推理、模型评估、微调或数据预处理。两者均可打包为单个容器镜像或 Helm chart,后者适用于需要多个协同容器或额外 Kubernetes 资源的复杂工作负载。
NVCF 提供了丰富的核心能力:统一控制面板管理跨区域集群的请求路由;基于工作节点可用性的负载均衡;支持多协议(HTTP、gRPC、流);多集群自动缩放,从零实例扩展到最大容量;混合 GPU 类型支持;以及健康检查和遥测功能,用于监控工作节点状态和请求延迟。这些特性使得 NVCF 尤其适合需要弹性扩展和高可用性的 AI 应用。
使用 NVCF 的典型工作流包括:通过 nvcf-cli 初始化、生成 API 密钥、创建和部署函数,最后调用函数。详细步骤可参考项目文档中的 CLI 指南和快速入门。项目还提供了丰富的示例和工具,帮助开发者快速上手。
在构建方面,NVCF 采用 Bazel 作为统一的构建和测试工具。整个单体仓库 (monorepo) 使用 Bazel 管理,支持构建原生二进制、多平台分发以及 OCI 镜像。开发者可以通过简单的命令构建整个项目或特定服务,并利用远程缓存加速构建过程。
NVCF 是一个活跃的开源项目,欢迎社区贡献。项目遵循 Apache-2.0 许可证,并提供了详细的贡献指南和行为准则。其公共路线图通过 GitHub Issue 跟踪,用户可以通过 Discussions 获取支持。随着更多功能的完善,NVCF 有望成为 GPU 云原生工作负载管理的重要基础设施。