正在打开每日关注
正在打开每日关注
视频拆解 vLLM 如何用分页、哈希与引用计数复用 KV Cache,提升推理显存利用率。
j VLLM 先 把 显存 切 成 固定 小 块 : 物理 BI aa 司 动 时 就 把 显存 切 成 一 池 固 定 小 块 、 空 亲 块 串 成 队列 , 一 块 装 bLock_size 个 人 各 输 己 KV_cach free_bLock_queue: 空闲 块 串 成 双向 链表 cLass KVCache CPU bLock_id bLock_id bLock_id bLock_id Doccs9 < > < > < > 《> … ref_cnt: =1 =2 =3 =4 - _bLock_ha: 了 prev_bLocl
视频围绕 vLLM 的 PagedAttention 展开:将 KV Cache 预切为固定大小的物理 block,再通过每个请求的 block table 把逻辑连续的 token 块映射到可分散存放的显存块。
它将传统连续预留导致的内部碎片、动态分配导致的外部碎片,类比为操作系统分页问题。完整前缀块以链式 block hash 查找;命中后,不复制也不重算 KV,而是让多个请求的 block table 指向同一物理块,并递增 ref_cnt。请求结束时,引用归零的块回到空闲队列,但旧 KV 与哈希记录仍可被后续相同前缀重新命中;只有物理块被再次分配并将覆盖内容时,旧哈希映射才被驱逐。
可将“固定粒度分块、内容寻址、引用计数、延迟失效”作为高并发推理缓存设计的观察框架,尤其适合判断前缀缓存命中为何常呈块大小倍数增长。
视频以示意性流程解释实现,具体 block 大小、数据结构与驱逐细节可能随 vLLM 版本、配置和缓存策略变化;链式哈希命中也只覆盖装满的块,不能据此推断任意长度前缀都能复用。