一、按GPU分数伸缩:单卡内的细粒度切分
最细的伸缩粒度不是“一张卡”,而是“一张卡的一部分”。现代GPU切分技术允许将单张物理GPU按显存和算力两个维度切分成多个逻辑实例,每个实例可独立分配给不同任务。
典型的切分方式包括硬件级分区和软件级共享。硬件级分区提供显存和算力的硬件隔离,适合多租户推理场景,每个租户获得独立的显存和算力配额,互不干扰。软件级共享配置更简单,通过时间分片或流多处理器共享来实现,但隔离性较弱,适合同信任域内混合运行开发测试任务。还有方案支持按显存和算力双维度灵活切分,算力支持最小百分之一粒度的配置,用于更细粒度的资源配比。
伸缩表现方面,理论上可以在单卡内增减分数,比如从零点五卡调整为一卡,但部分硬件级分区方案在修改配置前可能需要排空节点上的工作负载。分数级伸缩对延迟敏感的小推理服务很有价值,一个七十亿参数的模型推理可能只需要十几GB显存,强制占满整张八十GB的卡是巨大的浪费。
适用场景包括多租户推理服务、交互式开发笔记本、轻量级超参搜索。这类任务对延迟有一定要求但显存需求小,用分数粒度可以提高单卡承载的任务数量,显著提升资源利用率。
二、按GPU卡伸缩:最常见的实例级粒度
比分数粒度更粗一层的是“整张GPU卡”。许多平台支持以单卡或多卡虚拟机的形态提供算力,多卡虚拟机最高可以支持八卡并行。
伸缩表现是以“卡”为最小单位的增减,扩容时新增一张GPU,缩容时释放一张GPU。这种粒度的资源分配和回收开销通常低于节点级或集群级伸缩,但比分数粒度要大。按卡伸缩的决策逻辑相对简单,调度器只需要统计每张卡的空闲状态,将新任务分配到有空闲卡的节点上。
适用场景包括中小规模的模型训练、单卡推理服务、数据预处理任务。当任务需要独占整张卡的显存,比如大模型推理时模型参数需要全部加载到显存中,但不需要多节点通信时,按卡伸缩是自然的选择。按卡伸缩的另一个优势是隔离性好,每个任务独占整张卡,不会因为其他任务的活动而影响性能。
三、按节点伸缩:节点池视角
再往上一层是“节点粒度”,即以一台GPU服务器为最小伸缩单位。在容器编排环境中,这通常表现为节点池的扩容与缩容。当现有GPU节点资源不足、无法调度新任务时,自动向节点池加入新的GPU节点;当节点利用率持续偏低时,将节点移出服务。
节点级伸缩涉及节点加入集群、配置GPU驱动和设备插件等步骤,因此伸缩粒度更粗,单次伸缩开销比按卡或按分数更大。但它的优势在于可以整体增加单节点内的多卡资源,适合需要单机多卡通信的任务。节点级伸缩的触发条件通常是节点级别的资源指标,比如节点整体的GPU利用率超过阈值,或者节点上待调度的任务数量超过上限。
适用场景包括中等规模的分布式训练,比如单机八卡或几台节点组成的小集群,以及需要特定节点亲和性的推理部署。当任务对节点内高速互联带宽敏感时,按节点伸缩比跨节点更合理,因为节点内的GPU通信延迟远低于跨节点通信。
四、按集群伸缩:跨节点规模的弹性
最粗的粒度是“集群级伸缩”,即增减整个GPU集群的规模。这通常涉及多地域、多可用区的资源协调,可能从八卡扩展到数千张GPU。
集群级伸缩的资源协调开销最大,启动和回收周期最长,通常用于大模型预训练、大规模分布式推理等需要成百上千张卡协同的场景。其伸缩决策通常依赖全局指标,比如任务队列深度、集群平均利用率,而不是单卡或单节点的指标。集群级伸缩的触发条件往往是宏观层面的,比如整个集群的待处理任务总量超过预设阈值,或者集群的平均排队时间超过容忍上限。
适用场景包括大语言模型预训练、大规模微调、高吞吐批处理推理。这类任务对节点间通信带宽敏感,且训练一次可能持续数周,集群级伸缩需要配合检查点保存和断点续训机制,确保在伸缩过程中不会丢失训练进度。
五、混合粒度与动态编排:生产环境的真实形态
实际生产中,单一粒度往往不够用。大多数团队最终会采用混合粒度策略,让不同粒度的伸缩机制协同工作。
推理服务通常采用分数粒度加节点级自动扩缩容的组合。多个推理副本共享单张GPU卡,提高单卡利用率;当请求量增大到现有节点无法承载时,自动扩容新的节点。这种组合既保证了推理服务的响应速度,又控制了成本。
训练任务通常采用节点级伸缩加集群级伸缩的组合。分布式训练按节点增减工作节点,保证节点内通信效率;当训练任务规模扩大时,从共享资源池中借用额外的节点来扩充集群规模。这种组合在训练效率和资源弹性之间取得了平衡。
开发测试环境通常采用分数粒度加节点级伸缩的组合。多人共享单张GPU卡,提高资源利用率;按日间和夜间的负载变化自动调整节点数量,白天人多时多开节点,夜晚人少时合并到更少的节点上。
混合粒度的关键在于调度器能够感知多层资源状态,并支持自定义指标的伸缩触发条件。调度器需要同时管理分数级别、卡级别、节点级别和集群级别的资源视图,根据任务的特性和优先级选择最合适的伸缩粒度。
六、粒度选择的工程权衡
选择伸缩粒度时,需要综合考量多个维度的因素。
细粒度伸缩的优势是资源利用率高,可以减少资源碎片。多个小任务可以共享同一张卡,不会出现整张卡被一个小任务占满而其他任务无法使用的情况。细粒度伸缩的劣势是隔离性依赖切分技术,部分软件级切分方案的隔离性较弱,一个任务的异常行为可能影响同卡的其他任务。细粒度伸缩的灵敏度高,可以在秒级完成资源调整,适合对延迟敏感的场景。
粗粒度伸缩的优势是隔离性强,每个任务独占整台节点或整个集群,不会受到其他任务的干扰。粗粒度伸缩的劣势是资源利用率较低,可能出现整节点预留但利用率不高的情况。粗粒度伸缩的灵敏度低,节点启动和配置需要分钟级的时间,不适合需要快速响应的场景。
经验法则是:推理和开发测试优先用细粒度以提高利用率;训练任务优先用节点或集群粒度以保证通信效率和稳定性;混合负载则用分层策略,基础负载用粗粒度保稳定,突发负载用细粒度提弹性。
结语
弹性伸缩GPU算力服务的伸缩粒度从细到粗包括GPU分数、单卡、节点和集群四种层级。每种粒度在资源利用率、隔离性、伸缩灵敏度和通信效率上各有取舍,没有绝对最优,只有场景最适配。开发工程师在设计AI基础设施时,应先梳理业务对延迟、隔离、通信带宽的真实需求,再从分数、单卡、节点到集群逐层匹配伸缩策略,必要时采用混合粒度方案兼顾利用率与稳定性。理解这些粒度的本质差异,才能在算力成本和训练效率之间找到最佳平衡点。