资料索引与版本基线
1. 新结构与原资料的关系
全库按基础、运行时、KV 管理、存储、传输、Serving、实验和职业学习八个主题组织。每个主题的 README.md 讲共同问题和取舍;implementations/<项目>/ 放版本相关的实现解释、源码和案例。原有教材已迁移到主要问题所属主题,文中的旧章节号和题号保留作定位标识,不表示全库阅读顺序。
共同概念以公共基础作为首次阅读入口。出现框架差异时回到对应实现和源码,不把共同介绍当作统一 API 规范。
设计与专家主线集中在图册、专家总纲、KV 存储详解和LMCache/Mooncake 联合实现。完整性与未覆盖部分见审阅报告。
2. 按问题找一份主读材料
| 你要解决的问题 | 主读材料 | 什么时候补另一份 |
|---|---|---|
| Attention、形状与推理成本 | Attention 与推理 | 存储预算再看 KV 容量与复用 |
| 请求怎样被调度和执行 | 运行时主题 | 深读 vLLM或 SGLang |
| 分页、前缀树与状态池 | KV 管理 | 对照 Radix/状态池与 block/集成 |
| GPU/host/远端怎么衔接 | 分层控制案例 | 独立服务路线看 缓存服务内核 |
| lookup、staging、锁与完成 | 缓存服务内核 | 远端保护看 Store 对象协议 |
| 目录、对象与 payload 的关系 | 存储主题 | 上层衔接看 后端契约 |
| RDMA、拓扑与传输完成 | 传输主题 | 深入 TE 实现 |
| 多卡、kernel、CUDA Graph、量化 | Serving 与性能 | 深入 引擎性能案例和计算与内存 |
| 压测、观测与性能归因 | 实验方法 | 深入 缓存观测或 运行时实验 |
| 无 GPU 练习 | CPU 练习与答案 | 缓存策略看 对象与传输实验 |
| Linux TCP、TE、Store 实验 | 对象与传输实验 | 独立缓存服务集成看 MP 实验 |
| 从预算到系统设计 | 设计主线 | 深入 缓存服务设计与 共享存储设计 |
设计图按主题归位:引擎架构、运行时知识地图、缓存状态图、存储与传输图。建议按题目自己重画。
3. 各方向面试题怎么裁剪
| 主方向 | 主题库 | 补充重点 |
|---|---|---|
| 引擎 | vLLM 问答中的引擎、GPU、并行 | SGLang的 Radix、重叠、HiCache |
| KV 存储 | LMCache 问答中的生命周期、后端、设计 | Mooncake的读写、租约、传输 |
| 通信/GPU | vLLM 的执行与通信、Mooncake 的 TE | 补对象大小、拓扑、测量边界与异步失败 |
| 平台 | 四套中的 SLO、故障、容量与设计题 | 用自己的流量和发布场景作答 |
统一复习先过面试主线。原题库中重复的容量、指标、前缀题不用重复安排四次。
4. 本次整理使用的源码基线
整理日期:2026-10-26。以下提交对应本地已有源码,用来核对关键路径;不是推荐的可任意组合部署版本。
| 项目 | 源码提交 | 本资料的主线 |
|---|---|---|
| vLLM | f3871c3cbf8a608f7ee833ec4c2c5277f77bee41 |
V1、KV manager、Scheduler、原 runner/MRV2、Connector |
| SGLang | 30dc2f94303e339431cbd51489b2d1719678b0c1 |
Python runtime、Unified Cache、HiCache、MP 集成 |
| LMCache | ff9185d419e1ce55c9f4f1ad84a4f4f1f06af7be |
MP、L1/L2、controller/adapter;进程内模式作版本对照 |
| Mooncake | dd1217b6c461491e7c73ff29b4ffad215e0a9ac0 |
C++ Store、经典 TE;其他后端作进阶入口 |
源代码和原项目文档的链接尽量固定到这些提交;全库内部导航用相对路径。旧文章引用的在线 latest/stable 页面仍可能变化。
跑实验前记录什么
四个项目中实际使用者的 tag/commit、wheel、扩展构建方式
模型 revision、tokenizer/模板、LoRA、RoPE、KV dtype
TP/PP/DP、group、block/chunk size、layout
Connector 类、MP/进程内、Store 后端和传输后端
GPU、CPU、主机内存、NUMA、NIC、驱动与运行时
各层容量、在途限制、复制、准入、预取/等待策略
负载、冷热状态、正确性口径与 SLO
“LMCache 支持 Mooncake”不能替代这张兼容性表。尤其是原生扩展、Connector callback、布局和参数名,跨版本可能变化。
5. 按问题读论文
| 资料 | 要带走的问题 |
|---|---|
| Attention Is All You Need | Q/K/V 如何参与计算;与当前 decoder-only serving 有何边界 |
| FlashAttention | 为什么访存而不只是 FLOPs 决定性能 |
| PagedAttention / vLLM | 动态 KV 如何减少浪费并共享 |
| SGLang | 多次调用的前缀结构怎样进入运行时设计 |
| Sarathi-Serve | Chunked Prefill 怎样改变延迟与吞吐关系 |
| DistServe | 为什么围绕 goodput 和 SLO 做 PD 资源分配 |
| Mooncake | 缓存、通信、调度与过载准入怎样一起设计 |
读完每篇写四句话:瓶颈是什么、用什么换掉哪项成本、实验在哪些条件下成立、什么场景会失效。再到当前代码核对,避免把论文原型等同于今天的完整实现。
6. 资料维护约定
新增内容先判断它解决哪个技术问题:共同概念放对应主题,实现细节放该主题的 implementations/<项目>/。同一篇内容只保留一个主要位置,其他主题通过链接引用;不要恢复框架级顶层目录。新功能写明版本和支持边界,新实验注明推导、模拟或实测。
新增链接时,在 Infra 目录中实际检查能否打开。引用上游文件用提交固定链接,不沿用从原项目复制过来的 ../../源码目录。新同学应能从根目录开始完成阅读,而不需要先拥有相同的本机源码布局。