1. 课程导入:学习目标、课程结构、GPU集群资源碎片化问题概述

1.1 为什么需要关注GPU资源碎片化

在AI大模型训练与推理的工程实践中,GPU集群的采购成本往往占据基础设施总投入的60%以上。然而,绝大多数团队在GPU利用率监控中会发现一个尴尬的事实:集群整体算力看似充足,但新任务却频繁排队等待;显存总量看似富余,单个任务却无法获得连续的可用显存。这种现象的核心成因之一,便是GPU资源碎片化。

资源碎片化并非GPU领域独有的概念,但在GPU集群中,其影响被显著放大。与CPU任务不同,GPU任务通常以整卡或整卡切片(如MIG、vGPU)为调度单位,且对显存连续性、NVLink拓扑亲和性有严格要求。当不同生命周期、不同显存规格的任务在集群中反复申请与释放后,空闲资源会以“零散小块”的形式分布在多台节点上,形成“有卡但不够大,够大但卡不齐”的窘境。

学习提示:碎片化不是“资源总量不足”的别名,而是“资源分布形态与任务需求不匹配”的调度问题。理解这一点,是后续学习整合策略的前提。

1.2 本课程学习目标

完成本课程后,你将能够:

  • 诊断碎片化:使用显存视图、节点视图、时间视图三类指标,量化集群中“不可用空闲显存”的占比,定位碎片化最严重的节点与时间窗口。
  • 理解根因:从任务生命周期、显存申请粒度、调度策略、拓扑约束四个维度,解释碎片化为何产生并持续恶化。
  • 掌握整合手段:学会使用节点腾空、碎片整理、弹性调度、拓扑感知调度、显存池化等策略,在不同集群规模与业务场景下选择合适方案。
  • 建立预防机制:设计资源预留、分时复用、任务打包等长效机制,避免碎片化在业务高峰期反复出现。

1.3 课程结构总览

本课程共30章,按“认知→诊断→治理→预防→实战”五个阶段递进组织,各阶段内容如下表所示:

阶段 章节范围 核心主题
认知基础 第1-4章 碎片化定义、GPU资源模型、调度器原理、显存管理机制
诊断度量 第5-9章 碎片率公式、监控指标、拓扑感知、日志分析、可视化工具
治理策略 第10-18章 节点腾空、碎片整理、MIG/vGPU切分、Binpack与Spread策略、拓扑调度
预防与架构 第19-25章 资源池化、分时复用、弹性配额、多租户隔离、容量规划
实战案例 第26-30章 大模型训练集群、推理集群、混合负载场景的完整治理案例

1.4 GPU集群资源碎片化问题概述

为了直观理解碎片化的形成过程,我们通过一个典型场景来说明。假设一个GPU集群包含4台节点,每台节点拥有8张A100 40GB显卡。某时刻集群中运行着三类任务:

  • 任务A:4卡训练任务,显存占用约35GB/卡,已运行3小时
  • 任务B:2卡推理任务,显存占用约20GB/卡,已运行20分钟
  • 任务C:1卡数据预处理任务,显存占用约10GB/卡,已运行5分钟

当任务B结束后,其释放的2张卡分别位于节点1和节点3。此时,节点1剩余空闲卡为3张(其中2张连续),节点3剩余空闲卡为4张(其中3张连续)。若此时到达一个需要3卡且要求NVLink全互联的新训练任务,调度器将面临如下困境:

  • 节点1的空闲卡虽然总数为3,但其中2张与任务A的卡共享NVLink域,带宽被抢占,不满足性能要求。
  • 节点3的空闲卡总数为4,但其中1张与任务C的卡相邻,剩余3张虽连续,但显存型号与任务A不同(假设节点3为A100 80GB),无法混用。

最终,该3卡任务只能等待,而集群中实际空闲的显存总量超过200GB。这就是典型的资源碎片化导致的“假性饥饿”。

GPU集群资源碎片化形成示意(4节点 × 8卡) 节点1 (A100 40G) A-1 A-2 A-3 A-4 空闲 空闲 B-1 空闲 空闲 空闲 空闲 空闲 ⚠ 空闲5卡,但B-1碎片化 连续空闲仅2卡 节点2 (A100 40G) A-5 A-6 A-7 A-8 C-1 空闲 空闲 空闲 空闲 空闲 空闲 空闲 ✓ 空闲6卡,连续性好 但C-1占用1卡 节点3 (A100 80G) D-1 D-2 D-3 D-4 空闲 空闲 空闲 空闲 空闲 空闲 空闲 空闲 ⚠ 显存型号不同 无法与40G节点混用 节点4 (A100 40G) E-1 E-2 E-3 E-4 E-5 E-6 空闲 空闲 空闲 空闲 空闲 空闲 ✓ 空闲6卡,连续性好 可满足3卡任务 集群总空闲显存:约 200GB+ | 但新3卡任务仍无法调度 根因:节点1碎片化 + 节点3型号不匹配 + 节点2/4被非连续任务占用 图例与关键结论 已占用卡(训练/推理任务) 空闲且连续(可调度) 碎片化空闲(不可用) 碎片化 = 空闲但无法满足“连续N卡 + 同型号 + 拓扑亲和”约束的GPU集合 本课程后续将围绕“如何识别、量化、消除并预防这类碎片”展开

1.5 碎片化的本质与影响维度

从上述示例可以看出,GPU资源碎片化可以从三个维度来理解:

  1. 空间碎片化:空闲GPU分散在不同节点,单节点内连续空闲卡数不足。这是最直观的碎片形态,通常由不同规格任务混部导致。
  2. 拓扑碎片化:即使单节点空闲卡数足够,但空闲卡之间无法形成NVLink全互联或PCIe Switch亲和的拓扑关系,导致多卡任务无法获得预期通信带宽。
  3. 配置碎片化:集群中混用不同型号(如A100 40G与80G)、不同代际(如A100与H100)的GPU,使得任务无法跨节点迁移或聚合,进一步加剧调度难度。
常见误区:许多团队将碎片化简单归因于“任务太多、卡太少”,于是盲目扩容。但扩容后,由于调度策略未优化,新卡很快又被不同规格的任务切碎,碎片率反而可能上升。扩容只是推迟了问题爆发的时间,并未解决资源分布形态的缺陷。

1.6 碎片化带来的实际代价

碎片化对业务的影响并非仅体现在“任务排队”这一表象上,其深层代价包括:

  • 有效算力下降:集群名义算力(FLOPS)与实际吞吐之间存在显著差距,部分节点长期处于“低负载但不可调度”状态。
  • 任务延迟与SLA违约:在在线推理场景中,碎片化可能导致突发流量无法及时获得GPU资源,直接影响服务可用性。
  • 能耗浪费:空闲但无法被利用的GPU仍会产生待机功耗(约占满载功耗的30%-50%),造成不必要的电费支出。
  • 运维复杂度上升:为绕过碎片化,运维人员不得不手工指定节点、预留资源或调整任务规格,增加了大量人工干预成本。

1.7 本课程的学习路径建议

针对不同背景的读者,我们建议采用差异化的学习路径:

  • 平台运维/调度开发人员:建议按章节顺序学习,重点掌握第5-18章的诊断与治理方法,并动手实践第26-30章的案例。
  • AI基础设施架构师:可先阅读第1、2章建立认知框架,然后直接进入第19-25章学习资源池化与容量规划等架构级方案。
  • 算法/训练团队:建议重点学习第3、4章理解GPU资源模型与显存管理机制,以及第10-12章了解如何通过任务配置优化资源利用。

无论选择哪条路径,都建议在学习过程中结合自己集群的监控数据,尝试用课程中介绍的指标(如碎片率、连续空闲卡分布、拓扑亲和度)进行实际度量。只有将概念与数据对应起来,才能真正理解碎片化的动态演化规律。