Appearance
PyTorch内核探秘
第一本贯穿 PyTorch 训练栈、从 Tensor 内存布局一路打到 Inductor Triton 代码生成的架构专著。
本书基于 PyTorch v2.11(torch.compile 已成默认编译路径、FSDP-2 已稳定的里程碑版本)源码,系统剖析当代深度学习训练框架的设计与实现。从一个 tensor.add(other) 的完整旅程出发,由外到内、层层下潜:经过 Python 前端、Dispatcher 多分派、ATen 算子注册、c10 核心抽象、CUDA Caching Allocator、Autograd 反向图、TorchDynamo 帧拦截、AOTAutograd 函数化、Inductor Triton 代码生成、DDP 环形 AllReduce、FSDP ZeRO-3 分片,最终回到 NCCL 通信原语 —— 把每一个架构决策背后的"为什么"翻出来。
本书规模
| 项 | 数据 |
|---|---|
| 章节 | 24(前言 + 23 正文) |
| 中文字数 | ~16 万 |
| Mermaid 架构 / 时序图 | 122 张 |
| 真实源码引用 | 数百处带 file:line 标注,全部对齐 v2.11 实测 |
| Section 编号 | 924 条,跨章 §X.Y.Z cross-reference 100% 命中 |
每章 6500+ 中文字 + 至少 4 张 mermaid 图 + 多段真实源码摘录,覆盖 v2.11 源码的核心机制(不是 API 教程、不是入门)。
适合谁读
每天在用 model.fit() / loss.backward() / torch.compile() 的 AI 工程师,想理解"我写的 Python 代码到底怎么变成 GPU 上跑的 kernel"的研究者,做训练基础设施 / 推理优化 / 自定义算子的系统工程师,以及所有不满足于"框架黑盒"的深度学习从业者。
与本系列其他书的关系
| 关联书 | 关系 |
|---|---|
| vLLM 内核探秘 | 推理侧;本书是训练侧 —— 两者共享 ATen / CUDA Allocator / Dispatcher,构成"训练 + 推理"双子卷 |
| Tokio 异步运行时 | 都是"用户态调度器 + 多线程 worker"模型,autograd Engine 章节会做对照 |
| Rust 编译器之路 | TorchDynamo 的 guards / TorchInductor 的 IR-Lowering 与编译器后端有同源思想 |
| Serde 元编程 | ATen 的算子代码生成(YAML → C++ 注册)和 Serde 的派生宏哲学相通 |
目录
开篇
第一篇 全景
第二篇 张量层与运行时
- 第2章 Tensor、Storage、TensorImpl 三件套
- 第3章 c10 核心抽象:Device、DType、Allocator、intrusive_ptr
- 第4章 CUDA Caching Allocator:碎片化战争
第三篇 Dispatcher 与算子
第四篇 Autograd 自动求导
第五篇 nn 与训练栈
第六篇 torch.compile 编译器栈
- 第12章 TorchDynamo:CPython 帧拦截与图捕获
- 第13章 AOTAutograd:函数化与正反向图划分
- 第14章 TorchInductor:从 ATen IR 到 Triton kernel
- 第15章 CUDA Graph 与 torch.compile 端到端
第七篇 分布式训练
第八篇 工程与生态
- 第19章 序列化:torch.save / torch.load 与权重格式
- 第20章 量化与混合精度训练
- 第21章 Profiler 与性能调优
- 第22章 自定义算子与 C++ 扩展
- 第23章 设计哲学与 PyTorch 演进
版权声明
本书采用 CC BY-NC 4.0 许可协议。转载或引用请署名 杨艺韬 并附原文链接,禁止商业用途。