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 工作流会上传该目录。