Efficient Memory Management for Large Language Model Serving with PagedAttention

framework 2309.06180 — Cross-paper Synthesis

vLLM/PagedAttention — L3 Cross-Paper Synthesis #

§1 相关论文 #

相关论文关联类型关联原因
2412.19442 (KV Cache Management Survey)综述引用将 PagedAttention 归为 system-level memory management 的开创性工作,构建了 token/model/system 三层 taxonomy
2502.13965 (Autellix)后继扩展在 vLLM 基础上提出 program-level 调度(PLAS/ATLAS),解决 agent workload 下 vLLM FCFS 的 HoL blocking
2511.02230 (Continuum)后继扩展为 multi-turn agent 场景设计 KV cache TTL 机制,解决 vLLM 无法跨请求保留 cache 的问题
2305.05920 (FastServe)并行工作同期提出 LLM serving 的抢占式调度(skip-join MLFQ),与 vLLM FCFS 调度互补
2407.00079 (Mooncake)后继扩展prefill-decode 分离架构下的 KV cache 分布式管理,扩展了 PagedAttention 的分页思想到跨节点场景
2604.17861 (GPUOS)底层优化persistent kernel 消除 kernel launch overhead,与 PagedAttention 的 block table 间接寻址开销形成互补优化空间

§2 本篇 vs 相关论文的 delta #

vLLM 的核心贡献是将 OS 虚拟内存思想引入 KV cache 管理——固定大小 block 非连续存储 + block table 映射 + copy-on-write 共享,将内存有效利用率从 20.4%–38.2% 提升至接近 100% [2309.06180]

vs KV Cache Survey (2412.19442):Survey 将 vLLM 定位为 system-level memory management 的奠基工作 [2412.19442],但指出 PagedAttention 仅解决碎片问题,未触及 token-level 的 cache eviction/compression(H2O、StreamingLLM 等)或 model-level 架构改进(GQA、MLA)。vLLM 是"容器"层优化,与"内容"层优化正交。

vs Autellix (2502.13965):Autellix 发现 vLLM 的 FCFS 调度在 agentic workload 下产生严重的 program-level HoL blocking——长 program(如 100-call MCTS)的每次新 call 进入最高优先级队列,反复挤占短 program [2502.13965]。Autellix 的 PLAS 将调度粒度从 per-request 提升到 per-program,实现 4–15× 吞吐提升。这暴露了 vLLM 设计的一个根本假设缺陷:将每次 LLM call 视为独立请求,忽略了上层应用的结构化调度需求。

vs FastServe (2305.05920):FastServe 和 vLLM 是同期但互补的工作。vLLM 解决"如何在 GPU 内存中高效存储 KV cache"(内存管理),FastServe 解决"如何调度请求以最小化排队延迟"(调度策略)[2305.05920]。FastServe 实测表明 ShareGPT 工作负载下 98% 延迟来自排队而非执行——这意味着 vLLM 的内存优化即使完美也只能触及 2% 的延迟。两者结合(v3 FastServe 已集成 PagedAttention)才能全面优化。

vs GPUOS (2604.17861):GPUOS 通过 persistent kernel 消除 kernel launch overhead(从 3–7 μs/op 降至 ns 级) [2604.17861]。vLLM 的 PagedAttention kernel 每次迭代需通过 block table 间接寻址,引入 20–26% attention kernel 开销 [2309.06180]。若将 PagedAttention 的 block table lookup 融入 GPUOS 的 persistent kernel 框架,可能消除间接寻址开销——但需解决 persistent kernel 与动态 block 分配/释放的兼容性。

§3 可攻击面 #

  1. FCFS 调度是 vLLM 最大的系统性弱点。Autellix 证明在 agent workload 下 vLLM 的 FCFS 性能 ≈ 甚至差于 MLFQ [2502.13965]。FastServe 证明在 skewed workload 下 98% 延迟来自排队 [2305.05920]。vLLM 论文对调度完全未讨论。
    1. Block table 间接寻址的开销在 decode 场景被放大。论文报告的 20–26% attention overhead 是在 prefill-dominated workload 下测量的 [2309.06180]。Decode 阶段 attention 占比更高(memory-bound 单 token),间接寻址的相对开销可能更大。
      1. 单 block size 不适应所有 workload。论文实验表明 block size 16 在大部分场景最优 [2309.06180],但短序列 workload(Alpaca)和长序列 workload(ShareGPT)的最优 block size 可能不同。Adaptive block size 是未探索方向。
        1. Preemption 策略过于粗粒度。vLLM 的 all-or-nothing eviction(整个请求的所有 block 一起换出)在大 KV cache 场景(如 128K context)下 swap 开销巨大。Partial eviction(保留 attention sink tokens 的 block)可显著减少 swap 量。
        2. §4 生态位 #

          vLLM/PagedAttention 占据 LLM serving 基础设施的事实标准地位——被 HuggingFace、Ray Serve、SGLang 等广泛集成 [2309.06180]。其生态位并非来自调度或 kernel 的最优性,而是来自:(1) OS-inspired memory management 的概念优雅性,(2) OpenAI API 兼容的工程完善度,(3) 社区惯性。

          Adoption evidence:vLLM GitHub stars >40K;所有后续 serving 论文(FastServe v3、Autellix、Continuum、Mooncake)均以 vLLM 为基线或集成目标。Survey (2412.19442) 将其定位为 system-level KV cache management 的开创工作。

          Paradigm positioning:PagedAttention 确立了"KV cache as managed memory"的范式,使后续工作可以在此之上分层构建更高级的策略(eviction、sharing、scheduling),而非重新发明内存管理。

          §5 未探索方向 #

          1. Adaptive block size + hierarchical paging:结合 vLLM 的固定 block 和 OS 的 hugepage/smallpage 双粒度——对 prefill 阶段使用大 block(减少 block table entries),对 decode 阶段使用小 block(减少碎片)。
            1. PagedAttention + persistent kernel fusion:将 GPUOS 的 persistent kernel 与 PagedAttention 融合——block table lookup 在 device 端完成,消除 host→device 的 block table broadcast 延迟。
              1. Program-aware memory management:结合 Autellix 的 program-level 视角——为同一 agent program 的多次 call 预留 KV cache block 池,避免反复分配/释放的开销。
                1. Cross-request KV cache deduplication:超越 copy-on-write 的单请求内共享,实现跨请求的内容感知去重——类似 OS 的 Kernel Same-page Merging (KSM)。Continuum 的 TTL 机制是初步尝试,但缺乏内容级别的 dedup。
                  1. Heterogeneous block placement:将 block 按 access frequency 分层放置——hot blocks(attention sink positions)固定在 GPU SRAM/L2,cold blocks 在 HBM,frozen blocks 在 host memory。这需要将 block table 扩展为多级映射。