Ai2分享GPU集群调度实践
原文:Impactful scheduling for GPU clusters
GPU 集群的高效调度 在 Ai2 的 AI 基础设施团队,我们负责为研究院提供 GPU 算力,尤其是面向大规模分布式训练工作负载。我们把这项任务看作一个由四个层层递进的指标构成的金字塔。最底层是可用性:硬件处于健康状态并可供工作的时间比例。其上是占用率:可用时间中分配给特定工作负载的比例。再往上是影响力:最有价值的工作负载被选中获得资源的频率。金字塔的顶端是利用率:在某个工作负载的整个生命周期中,GPU 容量被实际使用的比例。本文讨论的是如何提升我们调度决策的影响力。我们最近用一套包含 GPU 时间预算、层级化公平份额分配和时间切片契约的系统,替换了原先基于优先级的调度器。结果是,我们把关于每个研究项目应得多少 GPU 时间的争论,从逐案处理的运维任务转变为透明的行政预算流程。超额承诺 在 Ai2,我们管理着数千块 NVIDIA H100、B200 和 B300 GPU,分布在规模从 88 块到 1024 块 GPU 不等的集群中。这些集群专为 AI 模型的大规模分布式训练而构建,服务于约 150 名内部研究人员,他们的工作涵盖多种 AI 领域,包括 LLM 和 VLM 训练的完整模型流程、机器人强化学习(RL)仿真,以及面向科学智能体用例的后训练。和许多实验室一样,我们对 GPU 时间的需求远远超过供给。根据已提交的工作负载,在任何时刻,我们未满足的 GPU 请求量都是可用量的 2 到 3 倍。换句话说,我们集群上每一个可用的 GPU 小时,都有 2 到 3 个不同的研究工作负载在争夺。过去,我们使用基于优先级的调度器,并允许工作负载选择不被抢占。每个团队都有一个并发 GPU 的上限