跳到主要内容
TileLang 系统教程

tilelang-tutorial.huandu.me

第 39 章 端到端:128 卡超节点上的训练与推理

/code/39-deepseek-e2e-supernode/

README.md1759 字节
# 第 39 章 代码

本章是**收口章**,不引入任何新的 kernel。`code/` 下的三个示例都是**纯 Python、
只用标准库**的账本程序:它们把正文里的公式复算一遍,并把每个数字的出处打印在
旁边。三个脚本都不需要 NPU / GPU,也不需要 TileLang 或 PyTorch。

## 目录

```text
code/
├─ README.md                          本文件
├─ 01-train-step-budget/              训练一步的通信 / 算力账本(§2.2、§2.8、§4)
│  ├─ README.md
│  └─ train_step_budget.py
├─ 02-inference-latency-model/       推理侧的判类账本(§3.4、§3.7)
│  ├─ README.md
│  └─ inference_latency_model.py
└─ 03-bottleneck-map/                「教程章节 → 组件 → 典型瓶颈」映射(§5)
   ├─ README.md
   └─ bottleneck_map.py
```

每个子目录都能独立复制出去运行,不依赖其他章节或其他示例的文件。

## 验证级别总表

| 示例 | 运行前提 | 作者实际做到的验证级别 |
| --- | --- | --- |
| `01-train-step-budget/train_step_budget.py` | Python 3.9+,仅标准库 | **CPU 逻辑验证**:在写作机上实际运行过,输出见该目录 README |
| `02-inference-latency-model/inference_latency_model.py` | 同上 | **CPU 逻辑验证**:实际运行过 |
| `03-bottleneck-map/bottleneck_map.py` | 同上(`--verify` 需要本书的章节目录) | **CPU 逻辑验证**:实际运行过 |

## 统一说明

* 写作环境(见 `../../VERSIONS.md`):macOS (Apple Silicon)、Python 3.11,
  **没有 NVIDIA GPU,也没有昇腾 NPU,也没有 CANN**。
* 这三个脚本**复算的是公式,不是硬件**。它们打印出来的每一个数字都必须与正文里
  标注的来源对得上;脚本本身不产生任何实测性能数字。
* 脚本里用到的两个硬件模型常量(HBM 3500 GB/s、fp8 峰值 865 TFLOPS)来自
  `../tilelang-corpus/14-deepseek-ascend-stack/raw/DeepGEMM-Ascend/csrc/jit_kernels/heuristics.hpp:46-71`,
  是**源码里的模型常量**,不是实测值。
* 脚本里用到的通信口径(FP8 dispatch、BF16 combine、`expert_alignment=128` 等)
  来自 `../tilelang-corpus/14-deepseek-ascend-stack/raw/DeepEP-Ascend/README.md:9-21` 的测量条件。
* DeepSeek 仓库都是 corpus 里的 2026-10-01 快照,commit 见
  `../../../../tilelang-corpus/14-deepseek-ascend-stack/raw/PROVENANCE.md`。

## 这三个脚本「不能」做什么

* 不能预测任何真实运行的端到端时间。它们给的是**下界与判类**,而且是
  在「假设实现已经接近上限」的前提下。
* 不能替代 profiler。第 12 章、第 19 章 §8 讲的 `msprof` 判读才是真机上的依据。
* 不能跨机器套用。换硬件、换 CANN 版本,两个常量都要重新标定
  (第 28 章 §2.2 的第三种误读)。

← 浏览本章全部代码