阅读指南
本文档提供三条阅读路线,适配不同背景和目标的读者。
路线一 - 初学者路线(从上层到底层)#
适合:有 PyTorch 使用经验,想了解内部机制的开发者。
flowchart LR
M0["Module 0\n全局概览\n(必读)"] --> M3["Module 3\nNN Module\n(最直观)"]
M3 --> M4["Module 4\n优化器\n(日常使用)"]
M4 --> M2["Module 2\nAutograd\n(核心原理)"]
M2 --> M1["Module 1\nTensor/Storage\n(底层基础)"]
M1 --> M5["Module 5\nDispatch\n(理解调度)"]
推荐阅读顺序:
- Module 0 - 全局概览 - 建立整体认知,了解三层架构和核心概念
- Module 3 - NN Module - 从最熟悉的
nn.Module 入手,理解 Parameter/Buffer 注册、Hook 系统
- Module 4 - 优化器 - 理解
optimizer.step() 背后的机制,掌握 Adam 算法细节
- Module 2 - Autograd - 深入计算图和反向传播引擎,这是 PyTorch 的灵魂
- Module 1 - Tensor/Storage - 理解最底层的数据结构 TensorImpl 和内存管理
- Module 5 - Dispatch - 理解算子如何被路由到正确的 kernel
路线二 - 编译器路线(torch.compile 全栈)#
适合:对 PyTorch 2.0 编译器栈感兴趣,想理解 torch.compile() 工作原理的开发者。
前置要求: 至少完成路线一的 Module 0 和 Module 2。
flowchart LR
M7["Module 7\nFX 图系统\n(IR 基础)"] --> M6["Module 6\nTorchDynamo\n(图捕获)"]
M6 --> M8["Module 8\nTorchInductor\n(代码生成)"]
M8 --> M11["Module 11\nExport\n(模型导出)"]
推荐阅读顺序:
- Module 7 - FX 图系统 - 先理解 FX IR 这个中间表示,它是 Dynamo 和 Inductor 的桥梁
- Module 6 - TorchDynamo - 理解如何从 Python 字节码捕获计算图
- Module 8 - TorchInductor - 理解如何从 FX 图生成优化的 Triton/C++ 代码
- Module 11 - Export - 理解 AOT 编译和模型部署
路线三 - 专项路线(按需选读)#
适合:对特定领域有需求的开发者。各模块相对独立,可按需选读。
flowchart TD
subgraph dist["分布式训练"]
M9["Module 9\n分布式训练"]
end
subgraph cuda["GPU 编程"]
M10["Module 10\nCUDA/内存"]
end
subgraph deploy["部署"]
M11b["Module 11\n导出部署"]
end
- 分布式训练 → Module 9:DDP、FSDP、DTensor、DeviceMesh
- GPU 与内存 → Module 10:缓存分配器、CUDA Stream、AMP 混合精度、内存优化实战
- 模型部署 → Module 11:torch.export、AOTInductor
每篇文档的结构#
每篇文档遵循统一结构,方便定位:
| 章节 |
说明 |
| 概述 |
本篇在整体架构中的位置 |
| 前置知识 |
阅读前建议掌握的内容 |
| 核心概念 |
关键术语和原理(配 Mermaid 图) |
| 源码解析 |
逐段分析关键源码 |
| 代码路径调试 |
step-by-step 执行链路跟踪(部分篇目) |
| 实战示例 |
可运行的代码示例 |
| 小结 |
关键要点 |
| 延伸阅读 |
相关文档链接 |