当企业拥有多个GPU集群以后,调度问题很快就不再是“哪台机器有空闲GPU”。不同集群可能使用A100、H100或其他GPU,显存容量不同,节点内部互联不同,跨节点网络也可能采用InfiniBand或以太网/RoCE,而云上和自建集群的成本结构更不一样。真正成熟的多集群调度器,需要根据任务类型、GPU资源、通信需求、延迟目标、数据位置和实际成本共同决定任务应该落在哪里。
首先要判断任务到底需要什么样的GPU,而不能简单按照GPU型号的新旧进行选择。A100 80GB提供80GB HBM2e显存,官方规格中的显存带宽约为1.94至2.04TB/s;H100 SXM同样提供80GB显存,但采用HBM3,显存带宽达到3.35TB/s,并提供明显更高的Tensor Core计算能力。
这些数字只能说明硬件能力,并不能直接转换成实际业务吞吐量。训练和推理到底受计算能力、显存容量、显存带宽还是通信限制,需要通过实际模型和工作负载判断。例如某些LLM推理任务主要受到KV Cache、权重读取和显存带宽限制,这时候单纯比较TFLOPS意义有限;而矩阵乘法占比很高的训练任务,则可能更加依赖Tensor Core吞吐量。调度器最好保存历史profiling数据,例如tokens/s、GPU utilization、HBM利用率、通信时间比例和每个batch的实际执行时间,而不是只保存GPU型号。
对于分布式训练,网络拓扑甚至可能比GPU型号本身更加重要。NVIDIA A100 SXM系统的GPU互联可以达到600GB/s级别,H100 SXM的NVLink带宽进一步提高到900GB/s。这里必须区分GPU之间的NVLink与CPU-GPU之间的NVLink-C2C,两者并不是同一个概念。NVLink-C2C属于芯片级互联技术,不能直接拿来与机间InfiniBand链路进行一对一比较。
跨节点训练则需要继续观察NIC、PCIe拓扑、交换机以及网络协议。以NVIDIA ConnectX-6为例,其InfiniBand HDR可以提供200Gb/s链路能力。但“200Gb/s”只是链路规格,并不等于应用能够获得200Gb/s的有效AllReduce吞吐量。实际结果还受到消息大小、通信算法、GPU-NIC拓扑、拥塞控制、NUMA以及软件栈的影响。
因此,多集群调度器不能简单写成“H100优先”或者“InfiniBand优先”。如果任务是单GPU推理,跨GPU通信几乎不是主要问题,调度器更应该关注显存容量、tokens/s、单请求延迟和GPU利用率。如果任务需要8卡甚至数百卡同步训练,那么GPU之间的互联、节点间网络和通信效率就会成为核心指标。
容量也是调度器必须首先检查的条件。一个任务要求80GB以上显存时,拥有大量40GB GPU的集群即使还有很高的GPU空闲率,也可能实际上无法运行这个任务。反过来,如果一个推理任务只需要较小显存,却被调度到昂贵的大型GPU集群,就会产生明显的资源浪费。
因此可以先建立硬约束,再进行成本优化。硬约束包括GPU显存容量、GPU数量、CUDA和驱动兼容性、GPU架构要求、节点拓扑、网络类型、存储可访问性以及数据所在位置。只有满足这些条件的集群,才进入下一轮评分。
成本模型也不能简单按照“显存每GB多少钱”或者“显存带宽每GB/s多少钱”计算。GPU服务器的实际成本至少包括GPU租赁或折旧、CPU和内存、网络、存储、电力、机房、许可证以及运维成本。对于云环境,还应该计算GPU实例价格、跨区域流量、存储和快照费用。
更重要的是使用单位业务成本。例如推理任务可以计算:
每百万Token成本
= GPU及基础设施实际成本 ÷ 实际处理Token数量
训练任务则可以观察:
有效训练吞吐量
= 每小时实际完成的训练样本或Token ÷ GPU集群小时成本
这样才能避免“GPU小时价格便宜,所以应该优先使用”的错误判断。一台便宜但通信效率低的机器,如果让训练时间延长很多,最终成本可能反而更高。
多集群调度还需要考虑数据位置。如果模型权重、训练数据或者缓存位于某个集群附近,把任务迁移到另一个地区可能增加数据传输时间和网络费用。对于大型模型,启动阶段从对象存储重新拉取大量权重本身就可能成为主要延迟。因此调度器可以把模型缓存命中率、数据本地性和镜像缓存状态纳入评分。
推理业务与训练业务也不应该使用同一套评分模型。在线推理通常更重视P95/P99延迟、排队时间、并发能力和SLO;离线推理则可能更关注每小时Token吞吐和单位成本。同步分布式训练则更加关注GPU间通信效率、有效训练吞吐和作业完成时间。
因此,一个实际的多集群调度评分模型可以类似:
Score =
资源匹配度
+ GPU性能收益
+ 网络与拓扑收益
+ 数据本地性收益
+ 成本收益
+ SLO收益
- 资源碎片惩罚
- 跨区域流量成本
这里的权重应该由业务决定,而不是写死。例如在线推理可以提高延迟权重,批量训练可以提高吞吐和成本权重,大规模同步训练则应该提高网络拓扑和通信效率权重。
还需要特别考虑GPU碎片问题。假设一个集群有64张GPU,看起来空闲率很高,但这些GPU分散在大量节点中,无法满足一个要求8卡同节点或特定拓扑的任务,那么这些空闲GPU对该任务实际上没有价值。调度器应该区分“总空闲GPU”和“满足拓扑约束的可调度GPU”。
多集群调度最终不是简单的GPU资源分配,而是一个带有硬约束和软目标的资源优化问题。GPU型号决定计算和显存能力,GPU拓扑决定通信效率,网络决定跨节点扩展能力,数据位置决定启动和访问成本,SLO决定业务优先级,而价格决定资源选择的经济边界。
真正成熟的调度器不会看到H100就自动把任务扔过去,也不会因为某个集群GPU小时价格便宜就认为它成本最低。正确的方法是先判断任务需要什么,再判断哪些集群真正满足条件,最后根据实际性能数据、网络拓扑、数据位置、SLO和单位业务成本进行选择。
对于AI基础设施来说,最有价值的不是让GPU看起来始终很忙,而是让正确的任务运行在正确的GPU、正确的网络和正确的成本结构上。GPU利用率只是结果之一,真正应该优化的是单位成本下能够完成多少有效计算,以及任务能否稳定、可预测地完成。
AI 多集群调度如何选择目标集群,GPU 类型、容量、网络和成本应该怎样综合考虑
图片说明:示意图 图片来源:Public Domain(公有领域)
喜欢这篇报道?
使用下面的功能,方便以后继续阅读和分享 MNewsTV
关于文章收藏
收藏不需要注册帐号,收藏信息仅保存在当前浏览器中。
删除收藏请进入「我的收藏」进行管理。
捐助(Paypal): https://www.paypal.me/observeccp 订阅中国观察电报 Telegram : https://t.me/s/ObserveCCP