跳转至

vLLM

vLLM 是目前生态最成熟的开源推理引擎之一,也是 PagedAttention 的原始提出者。

内容时效性

vLLM 更新极快,下述 PR 引用可能已合并或过时。请以项目的最新文档和 Release Notes 为准。


KVCache 架构

PagedAttention 与 BlockManager

vLLM 是 PagedAttention 的原始提出者(Kwon et al., NeurIPS 2023)。

  • BlockPool:统一管理 prefix cache block、shared block、free block,通过单一 ref_cnt 生命周期状态机
  • Block 粒度:默认 16 token/block,可配置
  • 物理/逻辑 Block 分离:逻辑 block 是请求视角的 KV 序列,物理 block 是 HBM 中的实际分配——多个逻辑 block 可以映射到同一物理 block(prefix cache 的核心机制)

Automatic Prefix Caching(APC)

  • 基于链式哈希的精确匹配:每个 block 的 hash = hash(前一个 block hash, 本 block token ids)
  • Lazy 匹配:只有 sealed(填满)的 block 才参与 prefix cache
  • Block 粒度命中:hit 后直接复用物理 block,跳过对应 token 的 prefill

主要特性

KV Offload(多级 Tier)

PR #40020 引入多级 KV cache offloading 框架:

  • 支持链式二级 tier:GPU HBM → CPU DRAM → NVMe
  • OffloadingManager 注入 per-request 身份追踪(PR #42507)
  • 换入/换出由调度器触发,对推理引擎透明

Mooncake Store 集成(分布式 KV 池)

PR #40900 将分布式 KV cache 池接入 vLLM:

  • MooncakeStoreConnector:在 scheduler 查询 Store 后进行 block 分配
  • MultiConnector 支持 PD + Store 混合拓扑

Agentic workload 实测(610 条真实 agent trace):

指标 基线 +Mooncake Store
Cache hit rate 1.7% 92.2%
Throughput 1× 3.8×
P50 TTFT 基准 −46×

PD 分离(Disaggregated Prefill)

vLLM V1 架构推进中的 disaggregated prefill 支持:

  • MultiConnector 统一管理 PD 拓扑和 Store 拓扑
  • KV 传输协议持续演进中

KV 量化

  • FP8 KV Cache:支持(部分硬件)
  • NVFP4 KV sliding window(PR #42464)
  • TurboQuant 集成(PR #40396)

KVCacheSpec 类型体系

vLLM v1 将 KV 管理抽象为 KVCacheSpec 继承体系,覆盖 FullAttention、MLA、SlidingWindow、ChunkedLocal、CrossAttention、Mamba state 等十种规格。核心不是枚举类型本身,而是让调度器通过 page_size_bytes、max_memory_usage_bytes、max_admission_blocks_per_request 精确估算 admission 风险。

规格 增长模式 工程含义
FullAttention / MLA 线性增长,但 page_size 不同 MLA 容量/传输量更低,但 backend 需适配
SlidingWindow / ChunkedLocal 有界增长 长上下文不等于无限 KV
Mamba state 恒定状态 不应按 KV block 线性预算

来源:主站 field-note vLLM KV Cache 类型体系拆解

External KV Connector:Mooncake / Pegaflow / Ascend

vLLM 的 KV connector 正在从单一 PD 传输扩展到外部 KV 池和异构硬件:

方向 内容
Mooncake Store scheduler 查询 Store,命中后复用远端 block,agent trace 命中率从 1.7% 到 92.2%
Pegaflow external KV cache 将 external KV cache 作为可插拔路径,面向跨副本复用和预取
Ascend KV pool connector 将 KV pool connector 扩到 Ascend 路径,说明外部 KV 语义正在脱离单一 CUDA 假设

这些 connector 的共同趋势是:vLLM 的 block manager 不再只面对本机 HBM/CPU,而要和远端 KV block 的存在性、加载状态和传输路径协商。

来源:主站 reading vLLM × Mooncake Store,主站 reading vLLM Ascend KV Pool Connector,主站 reading vLLM Pegaflow External KV Cache

Attention Backend

  • 支持 FlashAttention、FlashInfer、Triton
  • TOKENSPEED_MLA 覆盖 Blackwell MLA prefill/decode(含 FP8 KV cache,PR #41778)

多租户隔离

  • cache_salt 参数(PR #39837):按租户/用户隔离共享 KV block,防止跨租户命中

可观测性

vLLM 暴露的 KVCache 相关指标(通过 Prometheus / OpenMetrics):

  • vllm:gpu_cache_usage_perc:GPU KV cache 利用率
  • vllm:cpu_cache_usage_perc:CPU KV cache 利用率
  • vllm:num_preemptions_total:抢占次数
  • Prefix cache 命中率(通过 cache_hit_rate 统计)

关联章节

版本历史

版本 日期 说明
v0.2 2026-06-02 新增 KVCacheSpec 类型体系与 external KV connector(Mooncake / Pegaflow / Ascend)趋势
v0.1 2026-05-14 从框架对比总览拆分,梳理 BlockManager / APC / Offload / Mooncake 集成等核心特性