TileLang 是什么:以 Tile 为单位编写 AI 算子
TileLang 是什么:以 Tile 为单位编写 AI 算子
理解 Python DSL、编译器和设备执行之间的边界
TileLang 是什么:以 Tile 为单位编写 AI 算子知识学习CN编辑简报更新 2026-10-04
你将学会
- 从算子而非模型看起
- 读懂快速示例
- 限定后端说法
开始前需要
- 一个目标算子与设备
- 正确的框架参考实现
- 兼容的编译器与运行时
从 README 示例走向真实模型瓶颈的证据
先看结论
- TileLang 是算子 DSL,不是模型服务。
- 正确性与速度需要不同证据。
- 后端配置依赖设备。
从算子而非模型看起
TileLang 面向 GEMM、反量化和注意力等训练或推理中的热点算子。Python 风格的语言描述分块、数据搬运和并行工作,再由基于 TVM 的编译基础设施面向设备后端降低实现。
它不是模型、托管 API,也不会自动加速任意 Python。开发者仍要为每个算子选择形状、内存布局、数值精度与正确性判据。
读懂快速示例
固定版本 README 用 FP16 输入、FP32 累加写矩阵乘法,并融合 ReLU。`T.Kernel` 划分网格,共享内存和片段分配存储,`T.Pipelined` 安排搬运,`T.gemm` 做分块计算。
示例还用 PyTorch 参考实现和容差检查结果。这道正确性检查比项目主页的性能表更重要;上游公布的数字不是在我们的机器上重现的结果。
限定后端说法
仓库列出 CUDA、ROCm、Metal、实验性 CPU 以及多种 NPU 路线,但支持等级与安装条件各异。ROCm 需要主机工具链和匹配的 PyTorch;Ascend 950 在仓库内需源码构建,A2/A3 适配器则属于外部生态。
本系列依据提交 `d82101f` 的文件。我们没有构建 TileLang、运行内核或验证任何设备的性能指标。
如何选择
| 比较维度 | 方案 A | 方案 B |
|---|---|---|
| Best when | You need predictable behavior and easy auditing | You need adaptive optimization and have reliable telemetry |
| Main risk | May leave performance on the table | Can become difficult to explain or debug |
实施步骤
- 1
选定一个算子和精确的目标设备。
- 2
阅读固定版本示例及参考结果检查。
- 3
把上游支持声明与本机验证分开。
可复制示例
text
模型算子 -> TileLang 分块程序 -> TVM 基础的编译降低
编译内核 -> 设备执行 -> 参考结果比较常见问题
无需改模型代码就能加速所有 PyTorch 模型吗?
不能;需要实现具体算子,并让模型实际调用它。
本文重现了 README 的基准吗?
没有;这里只检查固定来源,未执行 GPU 基准。
资料来源
- TileLang / README.md来源核查 2026-10-04
- TileLang / docs/get_started/Installation.md来源核查 2026-10-04
- TileLang / examples/gemm/README.md来源核查 2026-10-04
- TileLang / examples/flash_attention/README.md来源核查 2026-10-04