1.PagedAtteion算法

https://zhuanlan.zhihu.com/p/680153425

PagedAtteion就是在VLLM里面会分为逻辑内存和物理内存,物理内存是真实存放KV cache的地方,而逻辑内存可以理解为逻辑上面的存在,需要通过一个块表,去链接物理内存到逻辑内存上。

需要处理三种情况,

1)parallel sampling,意思就是一个prompt有多个输出时候,会为一个物理内存分配reference count,而reference就像一个智能指针一样,如果逻辑内存写数据时候,发现对应的物理内存有超过1的count,就需要把count减去1,并且修改块表,复制原本的物理内存到其他位置,再把逻辑内存新写入的值写进去。

2)beam search,没有特别理解,看上去就是说迭代时候只会保持top-k信息,会共享候选块,并且在不再使用块时候释放块。

3)shared prompt,意思就是提前计算system prompt的KV值缓存下来。

相关推荐
byxdaz9 小时前
C++内存序
c++
优雅的潮叭9 小时前
c++ 学习笔记之 malloc
c++·笔记·学习
苦藤新鸡12 小时前
8.最长的无重复字符的子串
c++·力扣
꧁Q༒ོγ꧂12 小时前
C++ 入门完全指南(四)--函数与模块化编程
开发语言·c++
汉克老师13 小时前
GESP2025年12月认证C++八级真题与解析(判断题8-10)
c++·快速排序··lcs·gesp八级·gesp8级
qq_4335545413 小时前
C++ manacher(求解回文串问题)
开发语言·c++·算法
HL_风神14 小时前
设计原则之迪米特
c++·学习·设计模式
HL_风神14 小时前
设计原则之合成复用
c++·学习·设计模式
汉克老师14 小时前
GESP2025年12月认证C++八级真题与解析(单选题10-12)
c++·递归··gesp八级·gesp8级
bkspiderx15 小时前
C++中的map容器:键值对的有序管理与高效检索
开发语言·c++·stl·map