一句话定义:机架级 GPU 调度器(Rack-Scale Scheduler)是把整个机柜(rack)——而不是单台服务器、单张 GPU——当作调度单位的资源分配层,它决定“哪几十张卡、以什么拓扑、在什么时刻”一起干活。
为什么突然需要这一层
过去的 GPU 服务器是 8 卡一台,机器内部走 PCIe 或 NVLink,机器之间走 InfiniBand 或以太网。调度器(Kubernetes、Slurm 之类)只负责把任务塞进“有空闲节点的机器”,跨机器通信慢一点就慢一点,反正任务规模通常也就几台机器。
Grace Blackwell 这类系统改变了前提:一个机柜里高密度地塞进 Grace CPU 和 Blackwell GPU,用机架级 NVLink 交换机把它们连成一个大 NVLink 域。对训练任务而言,这几十张卡在带宽上更像“一台电脑里的几十个核心”,并不像“几十台电脑”。
旧调度器就难以适应了。它的最小分配单位是“一台 8 卡机”,任务要 20 张卡就得占三台机器,剩下的 4 张卡零散地空在那里,谁也用不上;更糟的是它不理解拓扑,可能把本该紧挨着的卡分到 NVLink 域的两头,让通信绕远路。
打个比方
传统调度像“整层起租”的写字楼:你要 20 个工位,必须租下整层 50 个,剩下 30 个空着也不能给别人。机架级调度像“共享工位 + 智能会议室系统”:按实际人数拼桌,知道哪张桌子挨着哪张,还会把正在检修的半边楼标出来不让进。
它具体做了什么
- 拓扑感知:知道每张卡在机柜里的位置和 NVLink 连接关系,尽量把需要频繁通信的卡放进同一个交换域。
- 细粒度拼装:把机柜里零散空闲的卡临时拼成一个逻辑上的“大节点”,任务结束再拆开归还。
- 整组分配(gang scheduling):分布式训练要求所有卡同时到位,缺一张全体等待;调度器要么一次给全,要么不给,避免半途占着资源空转。
- 故障域管理:机柜紧耦合,一条链路出问题可能影响一大片。调度器配合健康检查快速隔离坏掉的部分,让健康的卡继续跑,而不是整个机柜停下来等维修。
- 功率与散热:机柜级供电和液冷有预算上限,排布要跟功耗曲线对齐。
那 27% 是怎么来的
按官方口径,这类机架级调度能把同一批 GPU 的有效可用率提升约 27%(具体数字以官方页面为准)。拆开看并不神秘:碎片少了、等待少了、故障后能局部续跑,“真正在算的时间”占的比例就上去了。它并没有让卡变快,主要是把卡的闲置时间变短。
和相邻概念的区别
| 概念 | 调度范围 | 粒度 | 关心什么 |
|---|---|---|---|
| 集群调度器(Cluster Scheduler) | 整个数据中心 | 节点或整卡 | 排队、配额、多租户 |
| 机架级调度器 | 一个 NVLink 域(一个机柜) | 卡组与拓扑位置 | 互联拓扑、碎片、故障域 |
| 卡内切分(如 MIG) | 单张 GPU | 算力切片 | 隔离与小任务填充 |
三者是嵌套关系:集群调度决定“用哪个机柜”,机架级调度决定“机柜里这几十张卡怎么拼”,卡内切分决定“一张卡还能怎么再分”。
对不同人的意义
平台工程师要开始把 GPU 当成“带位置的拓扑资源”来分配,而不只是“一台机器”:机柜布局、NVLink 域边界、健康检查的粒度与速度,都会直接影响集群的实际产出。
普通使用者感受到的变化更朴素:排队等卡的时间变短,小任务不再因为“凑不齐一整台机器”而卡住。对采购方来说,同样的预算能跑出更多训练小时——这才是那 27% 的真正含义。
