过去两年,云上GPU长期是稀缺资源,整卡独占是最常见的分配方式。随着推理负载爆发,这种粗放模式的问题暴露得越来越明显:一张高端卡跑7B模型,显存与算力利用率常常不到三成,而排队等卡的任务却越积越多。

整卡独占为何难以为继

训练任务天然需要整卡甚至整机,但推理不同。在线服务的流量有明显波峰波谷,小模型和微服务化的智能体对算力的要求也高度碎片化。把整卡租给一个轻量推理服务,等于把成本固定在高位。云厂商和自建集群因此开始推进GPU池化:把物理卡切成可分配的算力单元,按需组合调度,让闲置资源流动起来。这一转变的动机并不复杂——单位算力价格下降的速度,取决于资源能否被更细地复用。

三条切分路线的取舍

  • 硬件分区:多实例GPU(MIG)可把一张卡切成多个彼此隔离的实例,显存、缓存与计算单元独立,故障域清晰,适合多租户生产环境;代价是切分粒度相对固定,配置灵活度有限。
  • 软件时间片:通过时间切片或多进程服务,让多个任务共享同一张卡,利用率高、切换灵活,但显存与算力缺少强隔离,一个任务的显存泄漏或长尾请求会拖累邻居,更适合可信租户内部使用。
  • 虚拟化与远程池化:虚拟GPU方案在虚拟层做切分,兼容传统应用;更激进的做法是把GPU注册为远程资源池,通过高速互联按需挂载,牺牲一部分延迟换取更高的整体利用率。

调度层正在补齐短板

切得开,还要调度得动。Kubernetes早期只能借助扩展资源字段把卡当作整数申请,遇到MIG场景往往要靠设备插件和自定义标签绕行。随着动态资源分配(DRA)走向成熟,GPU可以被描述为带有属性、容量和约束的资源对象,调度器按显存、算力、拓扑等维度匹配任务,并支持设备共享与拓扑感知。这让“申请半张卡、两块显存”从运维脚本变成了声明式配置。

可观测性也在同步跟进。过去只看GPU利用率的平均值,如今业界更关注显存带宽、计算单元占用和请求排队时延,并用单位经济效益衡量切片是否划算——每百万token的成本、每瓦吞吐,正在取代单纯的价格对比。

落地仍需回答的问题

切分不是免费午餐。硬件分区会带来容量碎片,切得越细,可用的整卡组合越少;时间片共享则要面对尾延迟放大和故障传播。多租户场景下,侧信道风险、显存残留和驱动版本一致性都需要额外治理。此外,切分改变了运维习惯:监控指标更细,告警阈值要重新标定,容量规划从数卡变成数算力单元。

结语

GPU池化的方向已经清晰:从按卡分配走向按算力分配,从追求独占安全走向在隔离与效率之间寻找平衡。对云上用户而言,值得关注的不是某一种切分技术,而是调度、计量和隔离三件事能否配套落地。谁能把这块做扎实,谁就能在推理成本战中拿到真实的优势。