vLLM PagedAttention 核心思路整理
这是对 vLLM 论文和实现的整理笔记,用来快速回顾核心设计。
背景问题
传统 KV Cache 按最大长度连续分配显存,导致大量碎片和浪费。
核心思路
PagedAttention 借鉴操作系统虚拟内存分页的思想:
- 把 KV Cache 切分成固定大小的 block
- 逻辑上连续的 token,物理上可以不连续存储
- 用一张 block table 做逻辑到物理的映射
# 伪代码示意
block_table[seq_id] = [block_5, block_12, block_3]
这种设计让显存利用率大幅提升,也让多个请求之间共享 prompt 前缀(prefix caching)成为可能。
参考对比
| 方案 | 显存利用率 | 实现复杂度 |
|---|---|---|
| 连续分配 | 低 | 简单 |
| PagedAttention | 高 | 较复杂 |
后续可以继续整理 continuous batching 和 scheduler 的部分。