技术指南

GPU调度和集群编排

GPU 调度决定哪些作业在哪些加速器上运行以及何时运行,而编排则在整个机器集群上协调这些作业。

概述

GPU 调度决定哪些作业在哪些加速器上运行以及何时运行,而编排则在整个机器集群上协调这些作业。它们共同使昂贵的 GPU 对于许多用户和工作负载而言保持忙碌、公平且可靠。

GPU 调度和集群编排是一个技术构建块,会大规模影响模型质量、基础设施成本、延迟和可靠性。

深入探讨

在共享的 AI 集群中,数十个用户争夺稀缺的 GPU,每个 GPU 的成本可能高达数万美元。调度程序将每个作业的要求(GPU 数量、内存、拓扑)与可用硬件相匹配,强制执行优先级和公平共享配额,并在集群已满时对工作进行排队。编排更进一步:它放置容器、装载数据、处理故障、重新启动崩溃的工作线程,并将多节点分布式训练缝合在一起。带有 NVIDIA 设备插件和附加组件(如 Volcano 或 Kueue)的 Kubernetes 可以处理组调度,其中分布式作业的所有工作人员必须一起启动,否则就没有。良好的调度还尊重 GPU 互连拓扑,将需要快速 NVLink 通信的队列放在一起,以避免缓慢的跨节点瓶颈。

技术洞察

GPU 作为可数、不可分割的资源公开,因此调度程序像整数一样跟踪它们,而不是可共享的 CPU 周期。组(或共同)调度至关重要:如果只授予 60 个 GPU,则具有 64 个等级的分布式训练作业会出现死锁,因此调度程序必须进行全有或全无分配。拓扑感知布局读取 NVLink 和 InfiniBand 布局,以保持紧密的通信等级,最大限度地减少主导大型模型训练的 all-reduce 延迟。

掌握 GPU 调度和集群编排

GPU 调度决定哪些作业在哪些加速器上运行以及何时运行,而编排则在整个机器集群上协调这些作业。它们共同使昂贵的 GPU 对于许多用户和工作负载而言保持忙碌、公平且可靠。 GPU 调度和集群编排是一个技术构建块,会大规模影响模型质量、基础设施成本、延迟和可靠性。为了建立深入的理解,请将 GPU 调度和集群编排视为一种操作模型,而不是单个功能:定义所需的结果,澄清假设,并将系统可以可靠地执行的操作与仍需要专家判断的操作分开。

在实践中,使用 GPU 调度和集群编排的强大团队根据可靠性和成本优化架构、数据和基础设施选择。他们记录明确的成功标准,根据实际数据和工作流程进行测试,并根据观察到的失败模式而不是一次性基准测试胜利进行迭代。这就是理论理解转变为跨产品、政策和运营的持久能力的地方。

多年来,架构决策决定着性能和运营成本。与此同时,优化一个基准测试可以隐藏更广泛的系统弱点。最具弹性的方法是将实验速度与治理规则结合起来:运行试点、捕获证据、发布决策日志,并随着模型行为、用户期望和监管要求的发展不断更新保障措施。

战略影响

多年来,架构决策决定着性能和运营成本。

多年来,架构决策决定着性能和运营成本。在高质量部署中,这会转化为可衡量的操作规则、所有权边界和定期审查仪式,以便团队可以增强信心,而不是扩大模糊性。

技术教育帮助团队选择正确的堆栈,而不仅仅是最新的堆栈。

技术教育帮助团队选择正确的堆栈,而不仅仅是最新的堆栈。在高质量部署中,这会转化为可衡量的操作规则、所有权边界和定期审查仪式,以便团队可以增强信心,而不是扩大模糊性。

更好的工程选择可以减少生产中的可靠性事故。

更好的工程选择可以减少生产中的可靠性事故。在高质量部署中,这会转化为可衡量的操作规则、所有权边界和定期审查仪式,以便团队可以增强信心,而不是扩大模糊性。

GPU 调度和集群编排的未来

调度程序在部分和分时 GPU、MIG 感知装箱和抢占方面变得越来越智能,检查点作业以回收更高优先级工作的容量。期望与能源和成本优化、现场容量重用以及自动组调度进行更深入的集成,以实现增加或减少工人数量的弹性训练。随着集群扩展到数万个 GPU,能够承受频繁硬件故障的容错编排变得至关重要。

现实世界的实施

研究实验室使用公平份额配额,因此任何一个团队都无法在其他团队排队等待时独占所有 GPU。

Kubernetes 与 Volcano gang-scheduled 32-GPU 训练作业,以便每个工作人员立即启动,防止部分分配死锁。

调度程序会抢占低优先级实验,对其进行检查点,并释放 GPU 以进行紧急生产重新训练运行。

拓扑感知布局将八个列并置在一个 NVLink 连接的节点上,以加速梯度全归约。

实施模式

GPU调度和集群编排实践

研究实验室使用公平份额配额,因此任何一个团队都无法在其他团队排队等待时独占所有 GPU。

研究实验室使用公平份额配额,因此当其他团队在队列中等待时,任何一个团队都无法独占所有 GPU。当团队预先定义质量阈值、为边缘情况保留人工升级路径并跟踪一段时间内的生产力提升和错误成本时,通常会获得更好的结果。

GPU调度和集群编排实践

Kubernetes 与 Volcano gang-scheduled 32-GPU 训练作业,以便每个工作人员立即启动,防止部分分配死锁。

带有 Volcano 的 Kubernetes 会安排 32 个 GPU 的训练作业,以便每个工作人员立即开始,从而防止部分分配死锁。当团队预先定义质量阈值、为边缘情况保留人工升级路径并随着时间的推移跟踪生产力增益和错误成本时,通常会得到更好的结果。

GPU调度和集群编排实践

调度程序会抢占低优先级实验,对其进行检查点,并释放 GPU 以进行紧急生产重新训练运行。

调度程序会抢占低优先级实验,对其进行检查点,并释放 GPU 以进行紧急的生产再训练运行。当团队预先定义质量阈值、为边缘情况保留人工升级路径并随着时间的推移跟踪生产力增益和错误成本时,通常会获得更好的结果。

GPU调度和集群编排实践

拓扑感知布局将八个列并置在一个 NVLink 连接的节点上,以加速梯度全归约。

拓扑感知布局将八个等级并置在一个 NVLink 连接的节点上,以加速梯度全归约。当团队预先定义质量阈值、为边缘情况保留人工升级路径并随着时间的推移跟踪生产力增益和错误成本时,通常会获得更好的结果。

风险与防护栏

!

优化一项基准测试可以隐藏更广泛的系统弱点。

!

基础设施和维护成本常常被低估。

!

随着系统变得更加复杂,安全性和可观察性差距可能会扩大。

实施路线图

1

在实施之前定义延迟、质量和成本目标。

在实施之前定义延迟、质量和成本目标。将每个步骤视为证据门:如果不满足标准,则暂停推出,缩小差距,然后再扩大使用。

2

在实际负载和数据条件下进行基准测试。

在实际负载和数据条件下进行基准测试。将每个步骤视为证据门:如果不满足标准,则暂停推出,缩小差距,然后再扩大使用。

3

仪器监控错误、漂移和用户影响。

仪器监控错误、漂移和用户影响。将每个步骤视为证据门:如果不满足标准,则暂停推出,缩小差距,然后再扩大使用。

4

在扩展之前准备回滚和事件响应路径。

在扩展之前准备回滚和事件响应路径。将每个步骤视为证据门:如果不满足标准,则暂停推出,缩小差距,然后再扩大使用。

不断探索