离线速查 / 2026-11-08

三框架源码对照

同一个问题,用三种系统规模回答。所有实现描述固定到本地vendor提交,不代表最新版。

问题nano-vllm bb823b3vLLM ef9339eDeepInfer a679bb8
请求闭环LLMEngine.step → schedule/run/postprocessEngineCore → Executor → Worker → Runner → output updatePython engine → pybind C++ Scheduler → Worker
本轮组批有prefill先返回;否则decoderunning优先,按token预算追赶,可混chunkNORMAL通过DP投票选择prompt/decode阶段
状态风险token IDs比cached常多1computed含乐观在途,拒绝draft须回退cache+inflight+q构成k长度;ZOS延后回填
KV对象一个标准布局,块表+hash链KV group、hash extras、块池与传输状态模型专用缓存/状态;完整外部KV服务另需集成
执行Qwen3、FlashAttention;decode graph多backend;FULL能力取决于backend专用内核、Attention DP/CP、MoE EP/EPLB
适合本机练习WSL单卡模型与指标改动支持模型的单卡对照实验固定支持矩阵不覆盖4070 Ti;读码与CPU算例

按问题找最短入口

读代码时的四问

  1. 这个量描述已知token、已调度工作、已完成KV,还是已经提交的输出?
  2. 数组索引是请求、逻辑token、物理slot、query head,还是KV head?
  3. 这一步改变哪个对象的所有权?谁有权回收它?
  4. 这是当前代码、注释中的设计意图、部署说明,还是教学简化?

详细事实核查与旧课勘误见研究报告。所有可点击行号见源码证据索引。