AI资讯

Ai2 用 GPU 时间预算替代优先级调度器:集群占用率维持 98%,调试任务 p90 排队从 2 小时降到 30 秒

Ai2 用 GPU 时间预算替代优先级调度器:集群占用率维持 98%,调试任务 p90 排队从 2 小时降到 30 秒

来源Hugging Face Blog查看原文

速览

  • Ai2 把 GPU 分配从逐案运维决策改为透明的预算分配流程
  • 核心思路:让管理者像投资人一样预先决定各研究方向的 GPU 时间投入
  • 任何 GPU 时间请求都必须有预算支撑,否则不受免抢占保护
  • 占坑行为现在会消耗本团队预算,使作弊比诚实争取预算更贵
  • fair-share 算法本身不新,新的是输入:树结构对应研究项目结构,权重由管理者设定
  • 时间切片契约让不健康主机可自动排空工作负载,维修自动化
  • 仿真环境可在数秒内模拟多天的排队等待、抢占事件和 GPU 时间分布
  • 交互式会话用户是这次改造的受损方,Ai2 计划新建 CPU-only 集群承接数据准备类会话
  • 正在调查容量碎片化问题,可能导致最大工作负载排队时间上升

Ai2 的 AI Infrastructure 团队发文介绍其 GPU 集群调度系统的改造:把原先基于优先级的调度器,换成由 GPU 时间预算、层级 fair-share 分配和时间切片契约组成的系统。Ai2 管理数千块 NVIDIA H100、B200、B300,集群规模从 88 到 1024 块 GPU,服务约 150 名内部研究者,需求长期是供给的 2-3 倍。旧系统下出现 GPU「占坑」、优先级通胀(100% 工作负载都用 HIGH 优先级)、on-call 工程师大量时间用于协商关停不可抢占任务等问题。新系统让管理者像投资人一样预先分配 GPU 时间预算,工作负载必须声明最小运行时长(上限 8 小时)才能获得免抢占保护,否则随时可被抢占且不计费。30 天测试期内,团队拿到了应得 GPU 小时的 98%,15 个团队分配中 13 个达到 95% 以上,最差 90%;集群占用率改造前后都稳定在 98%,其中 18% 的已交付 GPU 时间是未分配时间。调试类工作负载 p90 排队时间从 2 小时降至 30 秒,最大 H100 集群中位排队从 5 分钟降至 24 秒,p90 从 2.8 小时降至 1.8 小时,需要人工介入的维修减少 74%。

关键事实

  • Ai2 管理数千块 NVIDIA H100、B200、B300 GPU,集群规模从 88 到 1024 块不等,服务约 150 名内部研究者
  • 集群需求长期是供给的 2-3 倍,即每个可用 GPU 小时有 2-3 个工作负载竞争
  • 旧优先级调度器下出现 GPU「占坑」和优先级通胀,最终 100% 的已调度工作负载都使用 HIGH 优先级
  • 新系统由 GPU 时间预算、层级 fair-share 分配和时间切片契约三部分组成,fair-share 默认回看窗口为 7 天
  • 工作负载必须声明最小运行时长以获得免抢占保护,最小运行时长上限设为 8 小时,设为 0 则表示不计费的未分配占用
  • 30 天测试期内团队获得应得 GPU 小时的 98%,15 个团队分配中 13 个达到 95% 以上,最差 90%

本站视角

这篇文章对国内做大规模训练平台的团队有直接参考价值,尤其是那些自建 GPU 集群、同时服务多个内部团队或业务线的公司。它给出的不是「我们做了个更快的调度器」这类工程优化,而是一套机制设计:把「谁该拿多少 GPU」从工程师逐案协调的运维负担,转成管理者提前拍板的预算流程。这个转变的关键在于改变了激励结构——占坑、虚报优先级这些行为从「免费」变成「花自己的预算」,作弊成本高于诚实争取预算。 我们认为这套方案最值得借鉴的是它对「不可预测性」的处理方式。Ai2 明确承认无法预测未来算力需求(因为那取决于尚未做出的科学发现),但认为优先级是战略问题、可以提前决定。这个区分很实用:很多团队卡在「需求总在变所以没法做配额」的循环里,而 Ai2 的答案是配额不按需求定,按战略重要性定,需求波动交给 fair-share 的回看窗口和未分配占用机制去吸收。18% 的已交付 GPU 时间是未分配时间,这个数字说明他们确实在用「免费但不保命」的算力填谷。 对国内用 API 或租用算力的中小企业,这篇文章的参考价值有限,因为它的前提是自建集群且需求长期是供给的 2-3 倍。但对自建集群的团队,几个具体数字值得记住:最小运行时长上限 8 小时、回看窗口 7 天、维修人工介入减少 74%。最后一项容易被忽略,实际上可能是投入产出比最高的部分——on-call 工程师不再需要和长任务所有者谈判关停,不健康主机在工作负载达到最小运行时长后自动排空。 需要指出的是,这篇文章是 Ai2 自己发布的经验总结,数据全部来自其内部 30 天测试期,没有第三方验证,也没有给出与旧系统在同等条件下的对照实验设计。调试工作负载 p90 从 2 小时降到 30 秒这个数字,作者自己也承认基线样本量小、方差高,且仿真预测(6 小时到 5 分钟)与实际结果(2 小时到 30 秒)差异明显,说明仿真与生产环境仍有偏差。另外,98% 的占用率在改造前后相同,这意味着新系统的主要收益不在吞吐量,而在分配公平性和运维负担——这一点在传播中容易被误读为「提升了算力效率」。Ai2 也坦承交互式会话用户是受损方,且正在调查容量碎片化可能导致最大工作负载排队变长。这些都是判断这套方案是否适合自己时需要权衡的。

背景与影响

Ai2 的 AI Infrastructure 团队负责为研究院提供 GPU 算力,主要面向大规模分布式训练。他们把这项任务拆成四层指标金字塔:底层是可用性(硬件健康可用的时间比例),往上是占用率(可用时间中分配给特定工作负载的比例),再往上是影响力(最有价值的工作负载被选中获得资源的频率),塔尖是利用率(工作负载生命周期内 GPU 容量被使用的比例)。这篇文章聚焦的是「影响力」这一层。 旧系统的病理来自机制设计。优先级调度器允许工作负载选择退出可抢占性,每个团队对受保护工作负载的并发 GPU 数量有上限,可抢占工作负载则可在空闲 GPU 上超限。结果是研究者为了能低延迟启动调试任务,会停放空转工作负载「占坑」;同时优先级不断通胀,最终所有工作负载都用 HIGH 优先级,低优先级完全拿不到 GPU 时间;由于可抢占性是可选的,on-call 工程师的大部分工单响应时间花在协商关停运行在已知有维护问题主机上的不可抢占工作负载。 Ai2 把这一局面类比为「公地悲剧」:个体竞争稀缺共享资源,各自追求自身最优,结果全局非最优并滥用资源。他们引用 Ghodsi 等人 2011 年提出 Dominant Resource Fairness 的论文中的轶事——某搜索公司只把专用机器给能保证高利用率的任务,结果用户往代码里塞无限循环来人为抬高利用率。Ai2 的结论是硬件在变,但让资源分配变复杂的根本问题持续存在。 他们先尝试过给团队分配 GPU 独占权,这确实带来了所有权激励,但过于粗糙:研究有季节性,团队在不同时间才准备好跑实验,独占会导致 GPU 闲置,同时别的团队在排队。这相当于手工解一个背包问题,把动态变化的研究需求塞进静态排期。于是他们转向分配 GPU 时间而非 GPU 本身。判断未来需求需要预知新科学实验的结果,无法精确预测;但研究方向的优先级是战略问题,可以提前辩论和决定。 fair-share 算法本身有历史渊源,可追溯到 2009 年的 Hadoop Fair Scheduler,同样的方法今天仍在 SLURM 的 Fair Tree 和 YARN 的 Fair Scheduler 中使用。Ai2 的创新在于输入:调度树镜像研究项目结构,权重是管理者设定的预算而非静态配额。调度器在滑动回看窗口(默认 7 天)内跟踪占用情况,把利用不足的分配排在利用过度之前。 调度器区分两种占用:已分配占用计入预算、影响 fair-share 计算、在最小运行时长内受免抢占保护;未分配占用不计任何预算、从一开始就不受保护、可被任何已分配请求抢占。这让 GPU 在分配与实际需求不匹配时仍保持满负荷,也防止团队拒绝免费 GPU 周期。 Ai2 在 7 月底开始逐集群上线。他们强调仿真工具的价值:调度策略变化可能带来意外后果,零和性质意味着给一个研究者时间就是从另一个那里拿走,失去交换的人会寻找新的变通办法。仿真环境以工作负载集合及其提交时间表为输入,让调度器做抢占和 GPU 分配决策,可在几秒内模拟多天。 值得注意的是,Ai2 承认学习曲线比预想更陡。他们逐步上线,早期研究者因目标集群不同而体验各异;界面还保留了一些含义已变的旧术语(如工作负载优先级),仅靠文档无法消除困惑,真正有效的是现场讲解会。此外,交互式会话用户受到负面影响,Ai2 为此新增了两个路线图项目。他们还在调查容量碎片化问题。

本文由 AI 辅助整理自公开信源,事实部分以原文为准;「本站视角」一节为编辑部判断,欢迎指正。版权归原作者所有,如有异议请联系我们。

编辑与审校

AI大海啸编辑部

负责选题、审校与「本站视角」的判断。

编辑流程与 AI 使用说明