Offloading

别名:显存卸载 / CPU Offload / CPU 卸载

把暂时不用的权重、KV Cache 或优化器状态放到 CPU/磁盘,按需预取回 GPU,缓解显存不足。

更新于 2026/11/08
推理显存部署

一句话定义

Offloading 是把 GPU 暂时不用的数据(权重、KV Cache、优化器状态)放到 CPU 内存或磁盘,需要时再按层/按块搬回 GPU,用容量换显存。

为什么需要它

大模型或长上下文可能放不进单卡显存。Offloading 让模型“部分驻留”GPU,其余留在 CPU/磁盘;它不减少总数据量,但能降低 GPU 峰值占用。

怎么工作

  • 权重卸载:只把当前层权重放 GPU,其余层留 CPU,按层预取。
  • KV Cache 卸载:把不活跃请求的缓存放到 CPU,活跃部分留 GPU。
  • 磁盘/NVMe:冷权重或超大模型放磁盘,速度更慢但容量大。
  • 预取:在计算当前层时提前搬下一层,隐藏部分延迟。

Offloading:把暂时不用的数据挪出 GPU

关键取舍

  • 省显存,但增加 PCIe/磁盘搬运,延迟通常上升。
  • 预取能隐藏部分延迟,但受带宽和层粒度限制。
  • 层粒度越细,预取越灵活,但调度开销越大;带宽是主要瓶颈。
  • 高并发在线服务通常优先量化/分页,而不是大量 offload。先测带宽。
  • 和量化、PagedAttention 可以叠加;叠加后调优更复杂。
  • 适合低并发、低成本或显存受限场景,不一定适合高 SLA 在线服务。

常见误区

  • Offloading 会让推理更快:多数情况下是更慢但能跑。
  • 只有训练需要 Offloading:推理同样常用。
  • 卸载没有成本:带宽、延迟和调度复杂度都是成本。
  • 卸载能替代量化:两者解决不同问题,可以组合。

用在哪里

  • 低显存 GPU 跑大模型、长上下文。
  • 边缘设备、CPU/GPU 混合执行。
  • 训练中的优化器状态/激活卸载。

相关概念