LLM Infer Infra 学习资料库

LMCache 专项:28 天计划

白话导读:LMCache 单项目的 28 天深读计划,每周一个主题。

  • 优先执行全库统一计划,本计划只在需要深挖 LMCache 时使用。
  • 四周依次是:推理与缓存语义 → 源码主线 → 存储与性能 → 高级主题与面试。

时间不够时看文末的裁剪建议。

这是只学 LMCache 时用的计划。同时学几个项目时,以全库统一计划为主,这张表用来补充缓存管理和后端集成的专项任务。

时间安排:工作日每天约 2 小时,周末每天约 3.5 小时,四周共约 68 小时。每天大致三成时间学概念、五成读源码或做实验、两成复述和记笔记。目标是把 P0 内容学成闭环,而不是读完所有文件。

第一周:推理、容量与缓存语义

主读 KV 原理 和 知识地图与时序图。

天 学什么、做什么 当天交付
D1 建立版本记录;读总览;画 Prefill→Decode 用 3 分钟解释 LMCache 解决的重复计算问题
D2 从 attention 方程推导 K/V 的作用;比较 MHA、GQA、MQA 手算 32 层、8 KV heads、8K 上下文的容量
D3 学习 PagedAttention、APC、逻辑块与物理块 画两个请求共享前缀、独占尾块的示意图
D4 分析 token、模型、位置和上下文依赖;运行离线哈希练习 证明相同后缀不等于相同 KV;列出 key 隔离维度
D5 学习 chunk 与 block;比较不同 chunk 大小 算 255/256/257 tokens 在 chunk=256 下的完整块数
D6 阅读 MP quickstart、兼容性文档;有 GPU 者完成最小请求 环境清单与日志;无 GPU 者完成容量及带宽计算脚本
D7 做 Q1–Q12;闭卷复画知识地图 一页基础笔记,列出仍不能解释的三个问题

第二周:LMCache 源码主线

主读架构与源码主线。顺序是:设计文档 → 公开接口 → 主要调用 → 测试。不要打开一个几千行的文件从第一行硬读到底。

天 学什么、做什么 当天交付
D8 读 connector 与 scheduler/worker adapter 标出调度器查命中与 worker 搬数据的边界
D9 读 LookupState、LookupModule 画 LOOKUP ack、查询完成、超时、尾锁释放时序
D10 读 ObjectKey、GroupedObjectKeys、PrefetchTaskSpec 手工画两 rank、两 group、三 chunk 的命中矩阵
D11 读 L1Manager staging/resident 契约与测试 解释并发写同 key、读中淘汰、过期写的处理
D12 读 retrieve/store 与设备事件、内存所有权 画 buffer 从申请到 DMA 完成再到释放的生命周期
D13 读 PrefetchController、StoreController、L2AdapterInterface 解释 None/pending 与空 bitmap/miss 的区别
D14 复盘冷缓存、L1 命中、L2 命中三条路径;做 Q13–Q25 写 800 字源码导读,附符号与设计文档位置

第三周:存储、Mooncake 与性能

主读存储后端契约和优化与可观测;按硬件条件从实验手册里选做实验。

天 学什么、做什么 当天交付
D15 比较 DRAM、SSD、对象存储、远端内存;学习准入与淘汰 给三种 workload 选择 tier,并解释成本
D16 读 Mooncake Store 架构、Put/Get、租约与副本 画 Master 不经手 payload 的读写时序
D17 学习 RDMA、MR、QP/CQ、NUMA、GPUDirect 解释“提交成功、传输完成、对象可读”三个时刻
D18 阅读 LMCache Mooncake native adapter 配置/实现 标出 L1 注册、配置转发、操作线程池边界
D19 设计并运行 APC 与 LMCache 归因对照 冷/热状态清单;token 命中率与 TTFT 表
D20 改变 chunk、并发或共享前缀比例中的一个变量 一张带原始记录的曲线;无硬件者提供敏感性分析
D21 做 Q26–Q40;分析命中高但变慢的案例 5 分钟讲清读取与重算的盈亏条件

第四周:高级主题与面试交付

天 学什么、做什么 当天交付
D22 学习 P/D 分离、NIXL、MultiConnector 分开画当前请求 KV 交接与跨请求复用
D23 学习 CacheBlend、CacheGen/serde、量化与质量评估 给出一个适用场景和一个不适用场景
D24 学习混合模型、MLA、滑窗、抢占恢复 说明为什么总容量不能机械除以 TP
D25 故障桌面演练:超时、节点退出、半写、取消、租户热点 故障→检测→回退→资源释放的检查表
D26 完成系统设计题,预算容量、流量、元数据与冗余 2–4 页方案和架构图
D27 45 分钟模拟面试:基础 10 分钟、源码 10 分钟、设计 25 分钟 对每个回答标注“有证据/需验证/不知道”
D28 修正薄弱点;整理实验、源码导航和面试速记 完成下述毕业验收,并保留可复现命令

毕业验收与时间调整

下面六项各按 0、1、2 打分:0 = 讲不清;1 = 能解释;2 = 有计算、源码或实验作依据。

  1. 正确计算 KV 容量,并解释 GQA、TP、MLA 的适用条件。
  2. 画出 MP 冷写、热读、L2 预取与完成事件。
  3. 解释 key、layout、跨 rank 完整性和取消后的资源释放。
  4. 画出 LMCache + Mooncake 的控制与数据路径。
  5. 用测量或带假设的模型判断何时重算更划算。
  6. 设计容量、带宽、SLO、隔离和故障回退,并回答追问。

总分达到 10 分(满分 12)且没有 0 分,说明已经能和面试官深入讨论这个方向;但这替代不了生产经验。

时间不够时:每天只有 1 小时,就保留 D1–D21 的 P0 内容和 D26–D28,压缩 P1/P2 的深挖,仍在 28 天内完成。已经有分布式存储经验的,把基础部分的时间挪给 KV 语义、设备同步和引擎集成。

输入主题、术语或问题