当前位置: 首页 > news >正文

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)

  • 逻辑上连续的内存(虚拟内存),物理上可以是离散的(物理页框)
http://www.jsqmd.com/news/263757/

相关文章:

  • 完整教程:【Go/Python/Java】基础语法+核心特性对比
  • 数据交易中的数据质量评估方法
  • 数据结构3.0 栈、队列和数组
  • 算子优化实战:手写 Triton Kernel,将 LayerNorm 算子的执行时间压缩 50%
  • 深度测评自考必备一键生成论文工具TOP8
  • Linux实操篇
  • 51单片机智能遮阳篷窗户帘衣架蓝牙APP光雨滴检测41(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码
  • Java 并发探秘:JCTools 源码剖析,为什么 Netty 放弃 JDK 自带队列而选择 MpscArrayQueue?
  • todo
  • Go 调度器 (GMP) 揭秘:从汇编角度看 Goroutine 是如何实现“协程切换”的?
  • 【创新未发表】基于matlab鸡群算法CSO和自适应双种群协同鸡群算法ADPCCSO无人机避障三维航迹规划【含Matlab源码 14980期】
  • 第 174 场双周赛Q2——3810. 变成目标数组的最少操作次数
  • 【无人机三维路径规划】基于matlab鸡群算法CSO和自适应双种群协同鸡群算法ADPCCSO复杂山地模型下无人机路径规划【含Matlab源码 14981期】
  • Day22-20260118
  • 强烈安利9个AI论文写作软件,专科生搞定毕业论文!
  • 【雷达跟踪】基于matlab面向目标跟踪的雷达干扰方法:提升航空器战场生存力的关键技术【含Matlab源码 14983期】复现含文献
  • 【雷达相控阵】毫米波相控阵中空间Zadoff-Chu调制快速波束对准【含Matlab源码 14977期】
  • 卷积神经网络的开端:$LeNet-5$
  • 【雷达相控阵】基于matlab毫米波相控阵中空间Zadoff-Chu调制快速波束对准【含Matlab源码 14977期】
  • 【心电信号ECG】SVM心电图心搏检测与分类【含Matlab源码 14982期】复现含文献
  • 【心电信号ECG】基于matlab SVM心电图心搏检测与分类【含Matlab源码 14982期】复现含文献
  • 【心血管疾病】心脏病数据集Kaggle医学特征二元分类预测心血管疾病【含Matlab源码 14984期】含报告
  • 社交网络数据科学:完整项目实战指南
  • Hive与DynamoDB集成:云原生大数据方案
  • 【创新未发表】鸡群算法CSO和自适应双种群协同鸡群算法ADPCCSO无人机避障三维航迹规划【含Matlab源码 14980期】
  • Flutter × OpenHarmony 跨端汇率转换应用:货币数据模型与页面实现
  • 【无人机三维路径规划】鸡群算法CSO和自适应双种群协同鸡群算法ADPCCSO复杂山地模型下无人机路径规划【含Matlab源码 14981期】
  • 【雷达跟踪】面向目标跟踪的雷达干扰方法:提升航空器战场生存力的关键技术【含Matlab源码 14983期】复现含文献
  • 数电实验7【计数器和跑马灯设计实验报告】数字电路 逻辑与计算机设计 logisim
  • 人工智能之核心基础 机器学习 第十七章 Scikit-learn工具全解析