concept ●●●○○ #kv-cache#memory-layout#long-context
KV cache 为什么按 layer 切分而不是按 token 切分?
长上下文推理里 KV cache 跨层级管理的最基础问题——能说清这道题,第十六模块前 4 章基本就在掌握中
题目
为什么主流推理引擎(vLLM / TensorRT-LLM / 鲲鹏路线 1)的 KV cache 按 layer 切分而不是按 token 切分?分别从下面三个维度说清楚:
- 访存模式:attention 计算里 KV 的访问粒度长什么样
- 跨层级管理:放进 HBM/DRAM/RDMA 池/SSD 时,哪种切法更友好
- 跨节点共享:PD 解耦推理 / KV cache pool 场景下哪种切法传输效率高
最好能给出一个反例:什么情况下按 token 切分理论上更优?
提示
注意 attention 计算的 dependency:算第 N 层时只需要第 N 层的全部 K/V,不需要其他层的。这条规律决定了访存”自然单元”。
你的答案
解题思路(折叠)
[此处可写完整解答;做题时建议先盖住自己想]
📝 写下你的答案
写完点「AI 检查」会把你的答案和标准答案要点对照——本地存浏览器 localStorage,不会上传。
📚 标准答案要点(点击展开)
常见错误
- 误以为按 token 切分能"按需 evict 旧 token"——实际上 layer 内 evict 旧 token 同样可行
- 没意识到 prefill / decode 两阶段对 KV 访存模式差异巨大
- 把"分片粒度"和"驱逐粒度"混淆