I·Infra Notes AI Infra 工程实践指南 ← 返回主博客
模型与缓存 / READING NOTES

6.5 KV Cache 管理与 Offload

KV 块分配、分页寻址与前缀复用

速查:KV Cache 管理负责动态分配/释放/复用/换出。Offload 是把暂时不用的 KV 换到 CPU 内存或 NVMe,需要时再换回(用 PCIe 带宽换显存容量)。

术语解释:

  • Block Manager(块管理器):PagedAttention 的物理块分配器,维护空闲块列表与「哈希 → 块」映射。
  • Preemption(抢占):显存不足时强制释放部分请求的 KV,把它们放回等待队列。
  • Swap / Offload(换出 / 卸载):把数据从显存搬到 CPU 内存或 SSD。
  • PCIe(Peripheral Component Interconnect Express,外设互联总线):CPU 与 GPU 之间的数据传输通道,带宽远低于显存。
  • NVMe(Non-Volatile Memory express,非易失性内存标准):高速 SSD 接口协议。
机制 说明
Block Manager PagedAttention 的物理块分配器,维护 free list 与 hash→block 映射
抢占(Preemption) 显存不足时释放部分请求的 KV(置回 waiting 队列),优先恢复被抢占者
KV Offload / Swap 把 KV 换到 CPU DRAM / NVMe,PCIe 带宽成为新瓶颈
分层存储(Tiered Storage) GPU HBM → CPU DRAM → SSD 的多级 KV 存储

追问:抢占之后怎么恢复?

两条路:① 被释放的 Block 还在哈希表里 → Prefix Cache 直接命中,只需重算未缓存部分;② 已被覆盖 → 从头重算。所以「抢占」的代价取决于 Prefix Cache 的命中情况。