热榜
#机器学习

tile-ai/tilelang

让 kernel 作者用 Python 而非 CUDA 或 Triton 编写 GEMM、FlashAttention 等高性能 GPU/CPU/NPU 算子。

8,759
922
Python
NOASSERTION
上线 2 年

解决什么问题

手写一个高性能 attention 或 GEMM kernel,意味着要针对特定 GPU 代际手工调优:共享内存布局、tensor core 路径、流水线、TMA 搬运全靠自己安排,而且换一代硬件往往得重写。Tensor 算子还好,一旦涉及稀疏 attention、块量化 GEMM 这类算子,维护成本会迅速失控。TileLang 提供一个嵌入 Python 的 DSL,你描述 tile 和调度,由编译器生成 CUDA、ROCm、Metal、LLVM CPU 或华为 Ascend NPU 代码。

有什么不同

常见路线要么是裸 CUDA(控制力强但不跨硬件),要么是 Triton(Python 风格,但调度抽象更依赖编译器自动决定)。TileLang 更接近 TVM TIRX 之上的一层 tile 级 DSL:你保留对 TMA copy、warp specialization、cluster copy 和 atom 级 MMA 的显式控制,后端负责代码生成和同步。真正拉开差距的是三点:单一源码覆盖从 NVIDIA、AMD、Metal 到 CPU、Ascend 的多后端;内置大量算子构件(GEMM、块缩放 MXFP4/MXFP8 GEMM、FlashAttention、稀疏 MLA、scan、TMA gather/scatter);以及多数 kernel DSL 缺少的调试工具——IR pass diff、pass 可视化、编译耗时统计。

适合谁

适合为大模型写自定义算子的推理与训练工程师,尤其是需要一份源码跑在 NVIDIA、AMD 甚至其他加速器上的团队。不适合只想调用现成算子或用 torch.compile 的人:如果 scaled_dot_product_attention 已经够用,引入 TileLang 是过度工程。也不适合需要 API 冻结的项目——项目不到两年,release 仍在删旧接口。

上手成本

装 Python 包之外,还需要可用的 CUDA/ROCm/Metal 或 LLVM 编译链路,并且要跟上版本的依赖变化(README 的新闻列表里 release 非常密集,v0.1.13 明确移除了若干旧 API)。许可证字段显示 NOASSERTION,商用前务必自行核对实际条款。学习曲线不低:kernel 编程本身就是专业活,效果强依赖你的目标硬件。

点评

项目很新,2024 年 10 月创建,约 8.7k stars,但新闻日志里的发布节奏异常密集:按月发版,硬件覆盖持续推进(Blackwell、RDNA4、Ascend 950、Apple M5)。热度看起来是实的:本月新增 1,312 stars,在 Python 月榜排第 14,但从未上榜日榜。这个画像更像一个有真实社区的小众硬核工具,而非炒作式暴涨。靠写 kernel 吃饭、又看重跨硬件可移植性和 IR 调试能力的人值得投入;需要 API 稳定或不愿追版本的人可以先观望。

Hacker News 讨论

Tile Language: DSL for High-Performance GPU/CPU/Accelerators Kernels
▲ 6 · 1 条评论 · 2025年9月29日

本文由 AI 根据项目 README 生成,更新于 2026年10月24日,以项目官方文档为准。