TileLang 是什么:以 Tile 为单位编写 AI 算子
TileLang 快速上手:先验证 GEMM,再调分块大小
准备兼容的设备环境,用参考结果挡住错误优化
TileLang 快速上手:先验证 GEMM,再调分块大小知识学习CN编辑简报更新 2026-10-04
你将学会
- 选择安装路径
- 运行最小示例
- 理解一次通过的范围
开始前需要
- 一个目标算子与设备
- 正确的框架参考实现
- 兼容的编译器与运行时
从 README 示例走向真实模型瓶颈的证据
先看结论
- ROCm 需要主机 hipcc 与 ROCm PyTorch。
- `@tilelang.jit` 首次调用可能特化编译。
- 一个形状通过不等于全面验证。
选择安装路径
支持的环境可从 `pip install tilelang` 开始。NVIDIA 路线需要可用 CUDA 工具链;AMD Linux 包含 ROCm 后端,但仍要有主机 `hipcc`,且先安装与 ROCm 匹配的 PyTorch。
不要把 CUDA 专用的 `tilelang[nvcc]` 扩展当作 ROCm 安装方法。比较结果或提问题前,记下 Python、PyTorch、工具链、GPU 和 TileLang 版本。
运行最小示例
README 在 `@tilelang.jit` 下定义 `matmul_relu`,创建设备上的 PyTorch 张量,调用内核,再与 `torch.relu(a @ b)` 做容差比较。
先用文档中的形状与容差,然后一次只改一个维度。第一次调用可能发生特化和编译,后续调用可能复用产物,计时不能混在一起。
理解一次通过的范围
某个形状和设备上通过比较,只能说明那一例的局部正确性,不覆盖所有输入、类型或后端。接入模型前应测试边界尺寸、误差和重复调用。
下面的代码是依据文档整理的阅读提示,不是本轮编辑工作实际执行过的结果,也不应被当成某台机器的性能报告。
如何选择
| 比较维度 | 方案 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
扩展形状与类型后才测速度。
可复制示例
python
import torch, tilelang
# 先使用固定 README 中的 matmul_relu 定义。
c = matmul_relu(a, b)
torch.testing.assert_close(c, torch.relu(a @ b), rtol=1e-2, atol=1e-2)常见问题
AMD 上只运行 `pip install tilelang` 就够吗?
不够;安装指南要求主机 ROCm 与匹配的 PyTorch。
首次与后续调用能合并计时吗?
不能;应分开报告冷启动编译和热路径执行。
资料来源
- TileLang / README.md来源核查 2026-10-04
- TileLang / docs/get_started/Installation.md来源核查 2026-10-04
- TileLang / pyproject.toml来源核查 2026-10-04
- TileLang / tilelang/jit/__init__.py来源核查 2026-10-04