GPU调度和集群编排
GPU 调度决定哪些作业在哪些加速器上运行以及何时运行,而编排则在整个机器集群上协调这些作业。
概述
Together they keep expensive GPUs busy, fair, and reliable for many users and workloads.
深入探讨
在共享的 AI 集群中,数十个用户争夺稀缺的 GPU,每个 GPU 的成本可能高达数万美元。调度程序将每个作业的要求(GPU 数量、内存、拓扑)与可用硬件相匹配,强制执行优先级和公平共享配额,并在集群已满时对工作进行排队。编排更进一步:它放置容器、装载数据、处理故障、重新启动崩溃的工作线程,并将多节点分布式训练缝合在一起。带有 NVIDIA 设备插件和附加组件(如 Volcano 或 Kueue)的 Kubernetes 可以处理组调度,其中分布式作业的所有工作人员必须一起启动,否则就没有。良好的调度还尊重 GPU 互连拓扑,将需要快速 NVLink 通信的队列放在一起,以避免缓慢的跨节点瓶颈。
技术洞察
GPU 作为可数、不可分割的资源公开,因此调度程序像整数一样跟踪它们,而不是可共享的 CPU 周期。组(或共同)调度至关重要:如果只授予 60 个 GPU,则具有 64 个等级的分布式训练作业会出现死锁,因此调度程序必须进行全有或全无分配。拓扑感知布局读取 NVLink 和 InfiniBand 布局,以保持紧密的通信等级,最大限度地减少主导大型模型训练的 all-reduce 延迟。
战略影响
成本与预算
多年来,架构决策决定着性能和运营成本。
更清晰的判决
技术教育帮助团队选择正确的堆栈,而不仅仅是最新的堆栈。
质量控制
更好的工程选择可以减少生产中的可靠性事故。
GPU 调度和集群编排的未来
调度程序在部分和分时 GPU、MIG 感知装箱和抢占方面变得越来越智能,检查点作业以回收更高优先级工作的容量。期望与能源和成本优化、现场容量重用以及自动组调度进行更深入的集成,以实现增加或减少工人数量的弹性训练。随着集群扩展到数万个 GPU,能够承受频繁硬件故障的容错编排变得至关重要。
现实世界的实施
研究实验室使用公平份额配额,因此任何一个团队都无法在其他团队排队等待时独占所有 GPU。
Kubernetes 与 Volcano gang-scheduled 32-GPU 训练作业,以便每个工作人员立即启动,防止部分分配死锁。
调度程序抢占低优先级实验,对其进行检查点,并释放 GPU 以进行紧急生产重新训练运行。
拓扑感知布局将八个列并置在一个 NVLink 连接的节点上,以加速梯度全归约。
风险与防护栏
优化一项基准测试可以隐藏更广泛的系统弱点。
基础设施和维护成本常常被低估。
随着系统变得更加复杂,安全性和可观察性差距可能会扩大。
实施路线图
在实施之前定义延迟、质量和成本目标。
在实际负载和数据条件下进行基准测试。
仪器监控错误、漂移和用户影响。
在扩展之前准备回滚和事件响应路径。
不断探索
Free newsletter
Get the daily AI briefing
Three verified AI stories every weekday morning, written in plain English. Free forever, no ads.
One email each weekday. Unsubscribe in one click. We never sell or share your address.
Test yourself
Take the GPU Scheduling and Cluster Orchestration quiz
Instant feedback on every answer, and a shareable certificate with a verifiable ID once you pass a course.
Support free AI education. AI Understanding is a 501(c)(3) nonprofit — no ads, no paywall, ever. Make a donation
常见问题
What is GPU Scheduling and Cluster Orchestration?
GPU 调度决定哪些作业在哪些加速器上运行以及何时运行,而编排则在整个机器集群上协调这些作业。它们共同使昂贵的 GPU 对于许多用户和工作负载而言保持忙碌、公平且可靠。
为什么分组调度对于分布式训练作业很重要?
分布式训练需要所有队伍同时运行;全有或全无的组计划可以防止部分分配挂起。
调度程序通常如何将 GPU 建模为资源?
GPU 通常被视为可数的整体单元,与可以任意切片的 CPU 份额不同。
拓扑感知调度试图优化什么?
它将交换数据的队列放在同一位置,以便它们使用高带宽链路,从而减少通信延迟。
哪个附加组件通常与 Kubernetes 一起用于 AI 作业的批量和组调度?
Volcano(和 Kueue)添加了普通 Kubernetes 对于 AI 工作负载所缺乏的批处理和组调度功能。
GPU 调度程序中抢占的用途是什么?
抢占暂停或检查点较低优先级作业,以便紧急的较高优先级工作可以占用 GPU。