flowchart LR
subgraph user["用户层"]
A["torch.compile()"]
end
subgraph dynamo["TorchDynamo - 图捕获"]
B["字节码分析"]
C["Guard 机制"]
D["图生成"]
end
subgraph fx["FX - 图表示"]
E["Graph IR"]
F["图变换"]
G["图优化"]
end
subgraph inductor["TorchInductor - 代码生成"]
H["IR 降级"]
I["Triton 代码生成"]
J["C++ 代码生成"]
end
subgraph backend["后端执行"]
K["GPU 执行"]
L["CPU 执行"]
end
A --> B
B --> C
C --> D
D --> E
E --> F
F --> G
G --> H
H --> I
H --> J
I --> K
J --> L
sequenceDiagram
participant User as 用户代码
participant Dynamo as TorchDynamo
participant FX as FX Graph
participant Inductor as TorchInductor
participant Runtime as 运行时
User->>Dynamo: 首次调用 my_model(x)
Dynamo->>Dynamo: 拦截字节码
Dynamo->>Dynamo: 分析控制流
Dynamo->>Dynamo: 设置 Guard 条件
Dynamo->>FX: 生成 FX Graph
FX->>FX: 应用图优化
FX->>Inductor: 传递优化后的图
Inductor->>Inductor: 生成 Triton/C++ 代码
Inductor->>Runtime: 编译并缓存
Runtime-->>User: 返回执行结果
flowchart TB
subgraph compiler["编译器栈(本章)"]
A["编译器栈概览"]
B["FX 图系统"]
C["TorchDynamo"]
D["TorchInductor"]
end
subgraph fundamentals["基础知识"]
E["计算图构建"]
F["自动微分引擎"]
end
subgraph distributed["分布式训练"]
G["分布式概览"]
H["DDP/FSDP"]
end
subgraph cuda["CUDA 优化"]
I["CUDA 内存管理"]
J["混合精度训练"]
end
E --> A
F --> A
A --> B
A --> C
A --> D
D --> I
D --> J
A -.集成.-> G