AI 基础设施:从单卡到集群平台
- 发行日期
- 2025/12/29
- 作者
- Jimmy Song
- 发行方
- jimmysong.io
构建生产 AI 系统,难点早已不在模型本身:算力从哪里来、如何容器化、怎样被 Kubernetes 调度、如何共享与隔离、怎样在成本可控的前提下支撑训练与推理——这些基础设施问题,才是大多数团队落地 AI 时的真实瓶颈。
GPU 资源问题正在从“单机性能优化”迁移为“平台治理问题”:共享与隔离、碎片化与调度、在线推理的尾延迟、以及异构与多租户带来的组织治理复杂度。本书以 Kubernetes 为基座,系统梳理 GPU 资源的控制面与数据平面,并通过可复现实验把关键结论落到工程事实。
本书以 GPU 为主线(生态最成熟、机制最完整),但方法论覆盖整个 AI 加速器家族:NPU(华为昇腾)、TPU,以及寒武纪、海光等厂商的加速卡,它们接入 Kubernetes 的方式高度一致,隔离与切分则各有取舍,详见基础知识中的加速器谱系与硬切分、软切分两章。
全书的学习路径
本书不是技术清单的堆砌,而是一条由浅入深的问题链:先跑起来,再认识机器,看它如何接入与难管,然后从两个平面分别治理,用真实负载与可观测体系闭环验收,最后落到生产架构与演进趋势。各部分层层递进:
| 部分 | 核心问题 | 章节脉络 |
|---|---|---|
| 上手篇(getting-started) | 如何用最小代价跑起来 | 驱动与 CUDA 环境 → 云上第一台 GPU 机器(选型与成本)→ Docker 运行 GPU 工作负载 → 单机 Kubernetes 与 GPU Operator |
| 认识机器与问题(fundamentals) | GPU 是什么,为什么难管 | 卡内计算 → 执行模型 → 显存 → 世代与产品语言 → 卡间互连 → 服务器拓扑 → 加速器生态 → K8s 接入 → 设备模型边界 → 治理难点 → 两条切分路线 |
| GPU 软件栈与容器化(software-stack) | 应用如何合法地触达 GPU | Kubernetes 的出身 → 容器与 GPU 的根本矛盾 → NVIDIA 软件栈分层 → Container Toolkit 与 CDI |
| 数据平面(data-plane) | 一块卡怎么分 | 谱系总览 → MIG 硬切分 → HAMi 软切分 → DRA 下一代 API → 昇腾案例 |
| 控制面(control-plane) | 一个集群怎么治 | 控制面地图 → 调度问题域 → 放置策略 → NUMA 感知调度 → GPU Operator → Volcano/Kueue → 放置法/Kthena → 组合架构 → 能力模型 → 决策轴(收束评估) |
| 工作负载实践(workloads) | 尺子落到真实负载 | 工作负载系统观 → LLM 推理物理层 → vLLM → PyTorch 训练 → Ray/拓扑 |
| 可观测与验收(observability) | 怎么证明它工作 | 十个问题 → 指标语义 → 基准验收 → 故障排障 |
| 生产落地(production) | 系统如何上线与演进 | 平台责任 → 容量经济 → 生产架构 → NVIDIA × CNCF → 端到端实战 → 安全与生命周期 → 实施顺序 |
| 生态与趋势(landscape) | 领域往哪里走,这本书如何跟上 | 生态图谱与趋势(含 AI 时代维度) → 持续更新路线图 → 命令速查(附录) |
各部分之间的衔接是有意设计的:上手篇用最短路径让你拿到第一块“可以跑的 GPU”——环境、云上开机、容器、单机集群,每章各配一个动手实验,跑通之后你遇到的每一个“为什么”,都正好是后面部分要回答的问题。认识机器与问题以硬切分与软切分收尾并直接引出数据平面;GPU 软件栈与容器化在机器与集群之间补上软件栈这一层,让数据平面的“注入”有据可依;数据平面解决“资源单位”之后,控制面的控制面地图把问题升到集群治理;控制面以决策轴收束并交棒给工作负载实践的真实负载;可观测与验收把前面各部分的一切变成可验收的数字;生产落地把这些数字变成可以上线、可以演练、可以演进的系统;生态与趋势在时间维度上持续校准。
关于动手实验:上手篇的每个实验遵循统一格式——实验目标 → 前置条件与成本预估 → 操作步骤 → 验证清单 → 原理速览 → 清理与止损。每个实验都可以独立完成,显式列出验证点与资源清理步骤,避免“跟着做完却不知道对不对”与“云资源忘删”两类最常见的翻车。实验均已在真实环境验证,命令输出会随版本演进,遇到不一致时以各组件官方文档为准。
三类读者的读法:
- 零基础或希望先动手的读者:从上手篇开始,四个实验全部跑通(云上实验预算可控制在几美元以内),再带着手感回到原理部分按需补课。
- 第一次接触 GPU 的平台工程师:按顺序读认识机器与问题。物理层章节(微架构、CUDA 执行模型、显存、互连)是后续一切讨论的数字地基,跳过它们,后面每个共享与调度结论都会变成需要死记的教条。
- 已有 GPU 平台经验的读者:可以从数据平面与控制面切入,按需回跳基础知识与软件栈对应章节(例如读 MIG 前回看显存管理,读调度问题域前回看互连拓扑),最后用工作负载实践、可观测与验收与生产落地校准自己的生产实践。
你将获得两类可复用资产:统一决策轴(可用于选型评审)、参考架构组合(可用于平台落地)。
章节目录
用最小的成本与最短的路径把 GPU 跑起来:验证 Linux 驱动与 CUDA 环境,在云上开一台合算的 GPU 机器,用 Docker 运行第一个 GPU 容器,最后在单机 Kubernetes 上让 GPU 成为可调度资源。每章附带一个可独立完成的动手实验,包含验证清单与资源清理步骤。
由浅入深建立 GPU 与加速器的认知框架:先钻进机器内部(微架构与 Roofline 模型、CUDA 执行模型、显存、世代与产品语言、互连、服务器拓扑),再看加速器生态与 Kubernetes 接入模型,理解设备抽象的边界与治理难点,最后以硬切分/软切分两条路线收束,引出软件栈、数据平面与控制面两大部分。
从 Kubernetes 的出身讲起,拆解 NVIDIA 软件栈的层次契约,回答“GPU 为什么不能在容器里开箱即用”,并深入 NVIDIA Container Toolkit 的四个组件、CDI 现代路径与完整安装实践。
回答“一块卡怎么分”:从数据平面谱系的总览出发,依次深入 MIG 硬件隔离、HAMi 可声明共享、DRA 下一代 API 与昇腾 vNPU 案例,覆盖资源单位、隔离强度与运维成本的工程权衡。
回答“一个集群怎么治”:从控制面地图与调度问题域(碎片、Gang、放置)出发,经放置策略、NUMA 感知调度与 GPU Operator 三大基石,再走 Volcano/Kueue 工具、放置法与 Kthena 案例,最终以组合架构、能力模型与决策轴收束。
把前三部分的机制与尺子落到真实负载:工作负载的系统观(训练是同步问题、推理是尾延迟问题)、LLM 推理的物理层、vLLM 吞吐与尾延迟、PyTorch 训练调度语义、Ray/KubeRay 拓扑约束。