Torchlet 实现说明
Torchlet 将一条精简的 LLM 推理路径保存为一系列具名实现版本。每个页面都会说明发生了什么变化、为什么需要这项变化、它体现了什么原则,以及哪些文件值得对比。
实现版本
每个版本都保留前一阶段的实现,便于直接观察设计压力和结构变化。
v00_full_recompute
单请求 Qwen2.5 基线
已实现v01_0_ragged_batch
使用 req_indptr 批处理变长请求
已实现v01_1_split_gqa
在引入缓存前明确注意力计算阶段
已实现v02_kv_cache
分离预填充和解码,避免重复计算历史状态
已实现v03_request_states
显式跟踪等待、运行和完成状态
已实现v04_continuous_batching
在解码过程中动态接纳和移除请求
已实现v05_decode_slots
为解码请求提供稳定的槽位标识
已实现v06_static_buffers
为图捕获准备固定的解码输入
已实现v07_cuda_graph
捕获并重放静态解码路径
已实现v08_paged_gqa_py
使用块池和块表管理 KV 缓存
已实现v09_triton_basics
在分页注意力前引入小型自定义 kernel
已实现v10_triton_paged_gqa
将分页注意力迁移到 Triton,并重放固定解码路径
读者基础
- 了解 Python 和基础 PyTorch。
- 接触过 Transformer 注意力,但不一定熟悉推理服务内部机制。
- 更愿意对比小型代码版本,而不是直接阅读一个庞大的最终实现。
文档结构
- 先查看版本路线,理解整体演进顺序。
- 每次阅读一个版本页面。
- 当页面提到具体文件时,打开代码对比页。
- 先对比相邻版本,再对比早期和后期版本,观察设计压力如何累积。
页面约定
每个版本页面遵循相同的说明结构:
- 本版本引入什么。
- 为什么上一个版本需要它。
- 核心原则。
- 建议对比的重要文件。
- 有意保留的主要权衡。
构建与部署
站点由 tools/build_docs.py 仅使用 Python 标准库生成。生成结果写入 docs/_site,GitHub Pages 工作流会上传该目录。