首页/AI/大模型部署与运维速查/激活与工作区:不可忽略的第三块

激活与工作区:不可忽略的第三块

推理同样需要临时缓冲:算子工作区、中间张量、多卡通信缓冲、CUDA Graph 捕获占位等;随批次与后端实现变化,引擎通常按比例预留。

激活与工作区

推理同样需要临时缓冲:算子工作区、中间张量、多卡通信缓冲、图捕获占位等。它们随批次大小与后端实现变化,引擎通常按显存比例预留。规划时容易只算权重和 KV,把这一块当零头忽略,结果在特定配置下突然 OOM。

基本信息

主要组成算子工作区、中间张量、通信缓冲
影响因素批次大小与后端实现
管理方式引擎按比例预留
占比特点大 batch 与多卡时更明显
规划要点单独列一栏预算

典型使用场景

  • 显存估算时为工作区单独留一栏
  • 排查只在特定批次或后端出现的 OOM
  • 评估多卡切分带来的通信缓冲开销
  • 对比不同后端实现的显存差异
  • 把它写进显存估算模板,每次评估都单列一行

常见构成

常见构成
# 算子工作区 / 中间张量
# 多卡通信缓冲(张量并行与专家并行)
# 图捕获占位(启用捕获时需要)
# 统计与日志的小额开销
# 估算阶段按显存比例预留,实测阶段再校准

各组成随什么变化

组成随什么变化处理
算子工作区批次与算子实现按比例预留
通信缓冲并行度与拓扑多卡时单独估算
图捕获占位是否启用捕获启用则要留量
估算阶段按显存比例预留(配合利用率参数),实测阶段用总量对比校准,两边都要做一次,只做一边必然会偏差。
排查提示:只在特定批次或后端组合下 OOM 时,用压测把批次档位扫一遍,锁定触发峰值的区间,比逐个改参数快。
不要拿一次成功启动的数据当常量:换后端、换批次或改并行度之后,这部分占用会跟着变。

易错点

  • 把工作区当零头:个别算子在后端切换或大 batch 时临时抬升峰值,OOM 只在特定组合出现
  • 多卡时只算权重与 KV:通信缓冲与并行度相关,切分方案一改就要重算
  • 启用图捕获不留量:捕获占位会额外占用显存,最容易被漏算
  • 直接用别人的比例经验值:后端与批次不同,比例差异明显,要按自己的实测校准
  • 用一次启动成功的数据当常量:并行度或后端一变,这部分占用就跟着变

数据来源与参考

  • vLLM 官方文档:显存占用与调优(docs.vllm.ai)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌