编程 CPU + GPU:为什么 AI 平台工程是一个异构基础设施问题

2026-09-06 17:14:03

CPU + GPU:为什么 AI 平台工程是一个异构基础设施问题

CNCF(云原生计算基金会)博客发表文章,深入分析了 AI 平台工程面临的异构基础设施挑战。文章指出,AI 工作负载的独特需求使得传统的以 CPU 为中心的基础设施架构不再适用,AI 平台工程本质上是一个异构基础设施问题——需要同时高效管理 CPU、GPU、内存、存储和网络等多种资源,并在它们之间实现智能调度和协同。文章探讨了异构基础设施的核心挑战、当前的技术解决方案,以及云原生生态在 AI 时代的演进方向。

背景:AI 工作负载的基础设施需求

传统工作负载 vs AI 工作负载

传统的云原生工作负载(Web 应用、微服务、数据库)主要依赖 CPU:

  • 计算需求相对均匀
  • 内存使用可预测
  • 网络流量模式稳定
  • 可以水平扩展到大量廉价节点

AI 工作负载则完全不同:

  • 计算密集:训练和推理需要大量 GPU 计算
  • 内存密集:大模型需要巨大的内存(GPU HBM 和系统内存)
  • 存储密集:训练数据集和模型检查点需要高吞吐存储
  • 网络密集:分布式训练需要节点间高带宽、低延迟通信
  • 资源异构:同时需要 CPU、GPU、专用加速器等多种资源

GPU 成为一等公民

在 AI 时代,GPU 不再是可选的加速器,而是核心计算资源:

  • 大模型训练需要成百上千张 GPU
  • 推理服务需要 GPU 提供低延迟响应
  • GPU 的成本远高于 CPU,利用率直接影响 ROI
  • GPU 的调度和管理成为平台工程的核心挑战

异构基础设施的核心挑战

1. 资源调度

异构环境下的资源调度远比同构环境复杂:

  • 多维资源分配:需要同时考虑 CPU、GPU、内存、存储、网络带宽
  • GPU 拓扑感知:GPU 之间的连接方式(NVLink、PCIe、InfiniBand)影响通信性能
  • 亲和性与反亲和性:某些工作负载需要 GPU 紧密耦合,某些需要分散
  • 碎片化问题:GPU 资源容易碎片化,导致大模型训练无法调度
  • 超额订阅:CPU 可以超额订阅,GPU 通常不行,需要不同的调度策略

2. 资源利用率

GPU 资源昂贵,利用率是关键指标:

  • 训练利用率:分布式训练中 GPU 利用率往往低于 50%,通信和数据加载是瓶颈
  • 推理利用率:推理服务的 GPU 利用率受流量波动影响,空闲时浪费严重
  • 碎片化浪费:小模型占用部分 GPU 显存,剩余显存无法被其他任务使用
  • 上下文切换开销:GPU 任务切换比 CPU 慢,影响多租户共享

3. 网络架构

分布式 AI 工作负载对网络有极高要求:

  • 带宽需求:分布式训练中 AllReduce 操作需要大量节点间通信
  • 延迟敏感:同步训练中慢节点会拖慢整个集群
  • 拓扑感知:需要感知 GPU 拓扑和网络拓扑,优化通信路径
  • 多网络平面:可能需要同时使用以太网(管理/存储)和 InfiniBand/RoCE(训练通信)
  • 网络隔离:多租户环境下需要网络隔离和带宽保证

4. 存储系统

AI 工作负载对存储的需求也在变化:

  • 高吞吐:训练数据加载需要高吞吐,避免 GPU 等待数据
  • 低延迟:推理时模型加载需要低延迟
  • 大规模:训练数据集和检查点可能达到 PB 级别
  • 分层存储:需要在热存储(SSD/NVMe)和冷存储(对象存储)之间智能分层
  • 数据预处理:数据预处理(解码、增强)可能需要大量 CPU 资源

5. 多租户隔离

在共享的 AI 平台上,多租户隔离是关键挑战:

  • GPU 隔离:如何在多个租户之间安全、高效地共享 GPU
  • 性能隔离:一个租户的工作负载不应该影响其他租户的性能
  • 故障隔离:一个租户的故障不应该影响整个平台
  • 计费和配额:需要精确计量 GPU 使用时间,实施配额管理
  • 安全隔离:防止租户间的数据泄露和模型窃取

6. 生命周期管理

AI 工作负载的生命周期比传统应用复杂:

  • 训练任务:可能运行数天甚至数周,需要检查点和容错
  • 微调任务:通常较短,但需要频繁迭代
  • 推理服务:长期运行,需要弹性伸缩和滚动更新
  • 批处理任务:周期性运行,需要资源预留和调度
  • 交互式任务:Notebook 和开发环境,需要即时响应

当前的技术解决方案

Kubernetes 与 GPU 调度

Kubernetes 已经成为 AI 平台的事实标准:

  • 设备插件(Device Plugin):NVIDIA GPU Operator 等通过设备插件将 GPU 暴露给 Kubernetes
  • 扩展资源:GPU 作为扩展资源(如 nvidia.com/gpu)参与调度
  • 节点选择器和亲和性:可以将 Pod 调度到特定 GPU 型号的节点
  • 拓扑管理:Kubernetes 的 Topology Manager 可以协调 CPU 和 GPU 的拓扑亲和性
  • GPU 共享:通过时间分片(time-slicing)或 MIG(Multi-Instance GPU)实现 GPU 共享

GPU 虚拟化与分区

  • NVIDIA MIG:将 A100/H100 等 GPU 物理分区为多个独立实例
  • 时间分片:在多个任务之间分时共享 GPU
  • vGPU:虚拟化 GPU,提供更细粒度的共享
  • 显存隔离:限制每个任务的显存使用,防止 OOM

网络优化

  • RDMA:InfiniBand 和 RoCE 提供低延迟、高带宽的节点间通信
  • GPU Direct RDMA:GPU 内存直接通过网络传输,绕过 CPU
  • 集合通信库:NCCL、RCCL 等优化分布式训练中的集合通信
  • 网络拓扑感知调度:根据网络拓扑优化任务放置

存储优化

  • 并行文件系统:Lustre、BeeGFS 等高吞吐并行文件系统
  • 对象存储:S3 兼容存储用于大规模数据集和检查点
  • 数据缓存:在计算节点本地缓存训练数据,减少网络传输
  • 数据预处理卸载:将数据预处理卸载到专用节点或 GPU

调度器增强

  • Volcano:面向高性能计算和 AI 的 Kubernetes 批处理调度器
  • Kueue:Kubernetes 原生的作业队列和配额管理
  • YuniKorn:通用资源调度器,支持异构资源调度
  • 自定义调度器:根据特定 AI 工作负载需求定制调度策略

平台抽象层

  • Kubeflow:Kubernetes 上的机器学习工具包
  • Ray:统一的 AI 计算框架,提供分布式执行和调度
  • Kubeflow Training Operator:简化分布式训练任务的部署和管理
  • KServe:模型推理服务的标准化部署
  • MLflow:实验跟踪和模型管理

云原生生态的演进方向

1. GPU 成为一等资源

未来的 Kubernetes 将更深度地集成 GPU:

  • GPU 不再是扩展资源,而是核心资源
  • 更丰富的 GPU 调度语义(显存、计算能力、拓扑)
  • GPU 生命周期管理(健康检查、故障恢复、热插拔)
  • GPU 计量和计费的标准化

2. 异构调度的标准化

异构资源调度将更加标准化:

  • 统一的资源模型,描述 CPU、GPU、加速器等多种资源
  • 标准化的拓扑描述,表达资源间的连接关系
  • 通用的调度框架,支持可插拔的调度策略
  • 跨集群的异构资源调度

3. 网络与存储的协同优化

AI 工作负载需要网络和存储的协同优化:

  • 计算、网络、存储的联合调度
  • 数据局部性感知的调度(将计算调度到数据附近)
  • 网络带宽和存储 IO 的联合配额
  • 端到端的性能优化和调试

4. 弹性与成本优化

AI 平台将更加注重弹性和成本优化:

  • 训练任务的弹性伸缩(利用抢占式实例)
  • 推理服务的智能伸缩(根据 QPS 和延迟动态调整 GPU 数量)
  • GPU 资源的分时共享和超额订阅
  • 多云和混合云的成本优化

5. 可观测性与运维

AI 平台的可观测性需要覆盖异构资源:

  • GPU 利用率、显存、温度、功耗的细粒度监控
  • 分布式训练中的通信瓶颈分析
  • 端到端的性能追踪(数据加载 → 预处理 → 训练 → 检查点)
  • 智能告警和异常检测
  • 成本分析和优化建议

对平台工程师的建议

1. 从一开始就考虑异构性

不要假设所有资源都是同构的:

  • 在平台设计阶段就考虑 CPU/GPU 混合调度
  • 选择支持异构资源的调度器和编排平台
  • 设计灵活的资源模型,支持未来的新型加速器
  • 建立异构资源的计量和计费体系

2. 关注 GPU 利用率

GPU 是最昂贵的资源,利用率是关键:

  • 监控和分析 GPU 利用率,识别浪费
  • 实现 GPU 共享和分区,提高小任务的利用率
  • 优化数据加载和预处理,减少 GPU 等待时间
  • 考虑推理服务的批处理和模型复用

3. 投资网络和存储

网络和存储是 AI 平台的隐形瓶颈:

  • 评估网络带宽和延迟是否满足分布式训练需求
  • 设计分层存储架构,平衡性能和成本
  • 实现数据局部性优化,减少数据传输
  • 建立网络和存储的性能基准

4. 建立多租户能力

如果平台需要支持多个团队或用户:

  • 实现 GPU 资源的安全隔离
  • 建立配额和优先级机制
  • 实现精确的计量和计费
  • 提供自助服务能力,减少人工干预

5. 拥抱开源生态

云原生和 AI 生态有丰富的开源项目:

  • 关注 Kubernetes、Kubeflow、Ray 等核心项目
  • 参与社区,贡献代码和反馈
  • 避免厂商锁定,选择开放标准
  • 建立内部的最佳实践和工具链

总结

AI 平台工程本质上是一个异构基础设施问题。AI 工作负载对计算、内存、存储、网络的需求与传统应用截然不同,GPU 从可选加速器变成了核心计算资源。异构基础设施带来了资源调度、利用率、网络架构、存储系统、多租户隔离和生命周期管理等多方面的挑战。当前的技术解决方案包括 Kubernetes GPU 调度、GPU 虚拟化与分区、RDMA 网络优化、并行文件系统、专用调度器(Volcano、Kueue)和平台抽象层(Kubeflow、Ray、KServe)。未来,云原生生态将朝着 GPU 一等资源化、异构调度标准化、网络存储协同优化、弹性成本优化和全面可观测性的方向演进。对于平台工程师来说,从一开始就考虑异构性、关注 GPU 利用率、投资网络和存储、建立多租户能力、拥抱开源生态,是构建成功 AI 平台的关键。随着 AI 技术的持续发展,异构基础设施将变得更加复杂,也将催生更多创新的技术和解决方案。

来源:https://www.cncf.io/blog/2026/09/04/cpu-gpu-why-ai-platform-engineering-is-a-heterogeneous-infrastructure-problem/

推荐文章

程序员茄子在线接单