CPU offloading
也称为 CPU offload、DRAM offloading、主机内存卸载
先用大白话
CPU offloading 把加速器装不下的 KV cache 溢出到主机 DRAM,让长对话可以从内存中恢复,而不必从头重算。
技术定义
CPU offloading 把可复用的 KV cache block 保存在主机 CPU DRAM 而非加速器 HBM 中,当后续请求复用该前缀时再经主机链路读回。
工程细节
在推理服务语境下,这个词几乎总是指把 KV cache offload 到 DRAM,与训练侧把权重或优化器状态放到 CPU 的做法不同。引擎通过 connector 访问 DRAM,例如 vLLM 的 CPU offloading connector、LMCache、SGLang HiCache、Mooncake Store 和 Dynamo KVBM。该池通常是写穿实现,因此当用于 offload 的主机 DRAM 约为 HBM KV 容量的 1.5 到 3 倍时收益最大;其余取决于传输效率:在 hipMemcpyBatchAsync 于 ROCm 7.14 落地之前,AMD vLLM 无法批量执行 GPU 到 CPU 的拷贝,其 CPU offload 路径远不如 NVIDIA 上的同类功能好用。
为什么重要
当并发会话的 KV 工作集总量超过 HBM 时,DRAM offloading 决定了有多少智能体会话仍可恢复。它并非免费容量:在高并发下过度依赖 DRAM 层会增加重载流量,可能把交互性拖到可接受水平之下,所以真正值得回答的问题是这一层什么时候有用,而不是它是否存在。
如何在 InferenceX 中解读
AgentX 把 CPU KV offloading 视为允许但可选的优化。用于 offload 的 DRAM 必须随所用 GPU 的比例同步扩缩,非标准化 DRAM 配置的系统另有 3 TB 上限。使用了 offload 的数据点会被虚线光环标记,点详情视图会给出 offload 后端以及 HBM 与 CPU 两侧的缓存命中率。
参考资料