KV Cache分页管理
KV Cache Paged Management
将KV Cache按block分页管理,消除内存碎片,支持前缀共享和跨节点传输
子问题
1.block分配与回收策略
2.前缀哈希匹配
3.KV offload到CPU/磁盘
4.跨节点KV传输
5.混合注意力模型的多 Group 缓存命中长度收敛
6.Scheduler/Worker 双角色 KV Connector 协调
7.GPU block_table 到物理 slot 的 Triton kernel 映射
各项目的解法1 solutions
Signals
横向对比
| 维度 | vLLM |
|---|---|
| 分页策略 | 固定 block_size 分页,借鉴 OS 虚拟内存,block_table 逻辑→物理映射 |
| 前缀缓存 | 链式哈希 hash(parent_hash, token_ids, extra_keys),支持 LoRA/多模态区分 |
| 淘汰策略 | 自定义双向链表 LRU,O(1) 分配/释放/中间删除,哨兵节点零分支 |
| 混合模型支持 | 三级 Coordinator(Unitary/Hybrid/NoPrefixCache)+ KVCacheSpec 层级体系 |
| KV Offload | Scheduler/Worker 双角色 Connector,延迟 store 避免与 sampling 竞争 |
| GPU 映射 | Triton kernel 计算 slot_mapping,支持 Context Parallelism 分片 |
最佳实践
1.启用prefix caching复用公共前缀
2.选择合适的block size平衡碎片和开销
3.用哨兵节点双向链表替代 Python deque 实现 O(1) 中间删除
4.延迟 store 到下一 engine step 避免与 token sampling 竞争 GPU 带宽
5.链式哈希加入 extra_keys 区分 LoRA/多模态/cache_salt 上下文