AI Infra Academy
返回 Wiki
vLLMPagedAttentionKV Cache显存管理

vLLM 与 PagedAttention 深度解析

13 次阅读更新于 2026/6/27
1 0

背景:KV Cache 的显存困境

LLM 推理时,每个请求都需要为 KV Cache 预留显存。传统做法是按 max_seq_len 连续预分配,带来两类浪费:

实测传统方案的有效显存利用率往往只有 20%~40%

PagedAttention 的核心思想

借鉴操作系统的虚拟内存分页

  1. 将 KV Cache 切分为固定大小的 block(页),每个 block 存储固定数量 token 的 K/V
  2. 维护 block table 做逻辑 block → 物理 block 的映射
  3. 物理 block 按需分配,不要求连续
# 逻辑视图(每个 sequence 看到连续的 KV)
seq_a: [block_0, block_1, block_2]
# 物理视图(实际散布在显存各处)
physical: block_0→#7, block_1→#2, block_2→#5

带来的收益

维度传统方案PagedAttention
显存利用率20%~40%>96%
显存共享不支持支持(prefix 复用)
动态扩展预分配按需分配

Copy-on-Write 与前缀共享

多个请求共享相同前缀(如 system prompt)时,可以共享同一批物理 block,仅在内容分叉时才复制(CoW)。这是 vLLM 高吞吐的关键之一。

小结

PagedAttention 把"显存管理"这个系统问题用经典的 OS 思想优雅解决,是 vLLM 相比早期推理框架吞吐提升数倍的根本原因。

讨论区(3)

2229 天前

21313

33339 天前

333

33339 天前

32313