ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

LLM 推理加速:深入 vLLM 源码,揭秘 PagedAttention 如何让吞吐量提升 20 倍?

LLM 推理加速:深入 vLLM 源码,揭秘 PagedAttention 如何让吞吐量提升 20 倍?

标签:#LLM #vLLM #PagedAttention #CUDA #Inference #SystemDesign


📉 前言:显存碎片的“诅咒”

在 vLLM 出现之前,HuggingFace Transformers 的默认推理极其浪费显存。
LLM 推理是自回归的(生成一个 Token,存入 KV Cache,再生成下一个)。传统的 KV Cache 管理方式是预分配 (Pre-allocation)
假设最大序列长度是 2048,系统就会直接在显存里划出一块能存 2048 个 Token 的连续空间。

问题来了:

  1. 内部碎片:用户只问了句 “Hi”,占用了 5 个 Token,剩下的 2043 个 Token 空间全部闲置,但无法被其他请求使用。
  2. 外部碎片:不同请求的长短不一,导致显存中充斥着无法合并的小空洞。

这导致 GPU 显存利用率通常不到20%。显存塞满了,但没跑几个并发请求,吞吐量自然上不去。


💡 一、 灵感来源:操作系统的虚拟内存

vLLM 的作者从操作系统(OS)中找到了灵感。
OS 是怎么解决内存碎片的?分页 (Paging)

  • 逻辑上连续的内存(虚拟内存),物理上可以是离散的(物理页框)
返回列表