TileLang:用 70 行 Python 写出逼近硬件极限的 GPU 内核

假设你是 DeepSeek 的内核工程师,任务是为 V4 模型的注意力层写一个 FlashAttention kernel。你打开 VS Code,开始写 CUDA。三天后,你有了 3000 行代码:TMA 拷贝、warp 特化、异步流水线、Blackwell 的 MXFP8 块缩放矩阵乘……每一行都在和 GPU 内…

TileLang:用 70 行 Python 写出逼近硬件极限的 GPU 内核

场景开篇:一个 CUDA 程序员的典型一天

假设你是 DeepSeek 的内核工程师,任务是为 V4 模型的注意力层写一个 FlashAttention kernel。你打开 VS Code,开始写 CUDA。三天后,你有了 3000 行代码:TMA 拷贝、warp 特化、异步流水线、Blackwell 的 MXFP8 块缩放矩阵乘……每一行都在和 GPU 内存层级搏斗。

然后硬件团队告诉你:还需要一个 AMD MI300X 版本,一个华为昇腾 NPU 版本,一个 Apple Metal 版本。

你的三天变成了三个月。

TileLang 想解决的就是这个问题:让写高性能 GPU 内核这件事,从"每个硬件平台重写一遍"变成"写一次,编译到五个后端"。

它是什么

TileLang 是一个领域特定语言(DSL),构建在 Apache TVM 之上,用 Pythonic 语法编写高性能 GPU/CPU/NPU 内核。它不是又一个 CUDA 包装器——它是一个分层编程模型,让你在不同抽象层级自由切换:

  • 高层:T.gemm() 一行代码,自动选择最优张量核路径
  • 中层:手动管理 tile 布局、流水线阶段、warp 特化
  • 底层:嵌入 T.CUDASourceCodeKernel,直接写 CUDA 源码
这种"可穿透的抽象"是 TileLang 的核心设计哲学——抽象是工具,不是牢笼。当高层 API 满足不了你的需求时,不需要推翻重来,只需要在那一层"降维"到更低的抽象。

类比:编译器优化历史

TileLang 的定位很像 1970 年代的编译器优化。在 GCC 出现之前,每个程序员都在手写汇编,因为编译器生成的代码"不够快"。GCC 用了 20 年才追上手写汇编的水平。然后 LLVM 又花了 10 年把优化变成了模块化的 pass pipeline。

GPU 内核编程正在经历同样的轨迹:

  • 手写 CUDA = 手写汇编(性能最高,但不可移植)
  • Triton = 早期 GCC(比 CUDA 好写,但后端有限)
  • TileLang = LLVM(多后端、模块化 pass、可扩展)
关键区别在于:TileLang 从一开始就设计了多后端 IR(中间表示)。同一个 TileLang 程序,通过不同的 lowering pass,可以编译到 CUDA、ROCm、Metal、Ascend、WebGPU。2026 年 5 月的 TIRX 迁移进一步把这个 IR 移到了 TVM 的新表示层,为未来的后端扩展铺平了道路。

数据说话:五个月的新进展

智柴论坛在 2026 年 4 月底曾介绍过 TileLang(当时叫"TileLang + TileKernels")。过去五个月,这个项目经历了一次爆发式扩展:

后端覆盖

后端支持的硬件关键 PR
CUDASM70-SM100(Volta-Blackwell)INT4/FP16/MXFP8 张量核
ROCmRDNA3/RDNA4/CDNAWMMA lowering(2026-04-22)
MetalApple M1-M5Metal 4 cooperative-tensor GEMM
Ascend910B/950AscendC + NPU IR 双路径
WebGPU浏览器/WASM2025-02 起支持
五个后端,一套代码。这不是"理论上可移植"——DeepSeek V4 的 MLA(Multi-head Latent Attention)内核已经在 CUDA、ROCm、Ascend 三个后端上跑通了生产级性能。

关键技术里程碑

  • 2026-05-07:DeepSeek V4 算子支持,包括稀疏 MLA 反向传播
  • 2026-05-20:TIRX 迁移,把 TileLang IR 统一到 TVM 的新表示层
  • 2026-05-11:并行自动调优,支持多 GPU 基准测试和分组编译
  • 2026-04-28:Blackwell MXFP8 分组 GEMM,块缩放 + 转置 B 矩阵
  • 2026-04-25:HISA 稀疏注意力索引器,层次化稀疏注意力
  • 2026-03-24:双 SM Blackwell 内核,TMA + TMEM + TCGEN5 MMA
  • 2026-03-18:生产者-消费者 warp 特化,自动流水线
  • 2026-02-02:TileLang Puzzles,10 个渐进式练习题

生态工具

TileLang 不再只是一个 DSL——它正在变成一个语言生态:

  • TileLang Puzzles:10 个交互式练习题,从简单 GEMM 到 FlashAttention,类似 CUDA Mode 的 puzzles 但用 TileLang 语法
  • TileLang LSP:语言服务器协议支持,VS Code 里可以有补全、跳转、类型检查
  • DeepWiki 集成:可以直接问 AI 关于 TileLang 的问题
  • Discord 社区:开发者活跃讨论

核心洞察:抽象层级的选择权

TileLang 最有意思的设计决策不是"多后端"——多后端是 TVM 的天然能力。真正有意思的是抽象层级的选择权。

传统的 GPU 编程框架给你两个选择:

1. 高层框架(PyTorch、JAX):一行代码写 attention,但你无法控制 tile 大小、流水线阶段、warp 特化 2. 底层 CUDA:完全控制,但每个硬件平台重写一遍

TileLang 给了第三个选择:在同一份代码里混合使用不同抽象层级。你可以用 T.gemm() 写矩阵乘法(高层),同时手动管理 FlashAttention 的流水线(中层),在需要的地方嵌入 CUDA 源码(底层)。

这很像 Python 的设计哲学:给你选择权,但不强迫你选择。你可以写脚本,也可以写大型系统;可以面向对象,也可以函数式。TileLang 把这种灵活性带到了 GPU 内核编程。

为什么现在重要

2026 年的 AI 系统工程面临一个结构性矛盾:

  • 模型迭代加速:DeepSeek V3 → V3.2 → V4,每代模型的注意力机制都在变化(MLA、稀疏 MLA、HISA)
  • 硬件碎片化加剧:NVIDIA Blackwell、AMD MI300X、华为昇腾 950、Apple M5,每家的张量核指令集都不一样
  • 内核工程师稀缺:能写生产级 FlashAttention 的人,全球可能不超过几百个
TileLang 的价值主张是:让一个懂算法的工程师,写一次内核,部署到五个硬件平台。这不是"性能换可移植性"的妥协——在 DeepSeek MLA 的案例中,TileLang 生成的内核性能已经接近手写 CUDA。

跨域类比:从 CUDA 到 TileLang

这个演进路径和数据库领域很像:

  • 手写 CUDA = 手写 SQL 执行计划(1970 年代)
  • Triton = 早期 SQL 优化器(1980 年代,能跑但不够聪明)
  • TileLang = 现代 Cost-Based Optimizer(2000 年代,自动选择最优路径)
每个阶段都把"专家知识"从人脑转移到工具里。TileLang 的自动调优器(2026-05-11 引入的并行自动调优)做的就是 CBO 的事:给定一个内核描述,自动搜索最优的 tile 大小、流水线阶段数、warp 特化策略。

局限性

TileLang 不是银弹:

  • 学习曲线:虽然比 CUDA 好学,但仍然需要理解 GPU 内存层级(shared memory、registers、TMA、TMEM)
  • 性能上限:在极端场景(如自定义稀疏模式、非标准数据布局)下,手写 CUDA 仍有优势
  • 后端成熟度差异:CUDA 后端最成熟,Ascend 和 Metal 后端仍在快速迭代
  • 生态规模:相比 Triton(OpenAI 支持)和 CUDA(NVIDIA 原生),TileLang 的社区还很小

结语

TileLang 代表的是一种工程哲学:在抽象和性能之间找到平衡点,不是非此即彼。它不追求"消灭 CUDA"——它追求的是让 80% 的内核工程师不需要写 CUDA,让剩下 20% 的专家能更高效地迭代。

当 DeepSeek V4 的 MLA 内核可以用 70 行 TileLang 替代 3000 行 CUDA 时,这不是"性能妥协"——这是生产力革命。就像 GCC 没有消灭汇编,但让大多数程序员不再需要写汇编一样。

TileLang 正在做的,是把 GPU 内核编程从"手艺"变成"工程"。这条路走了 18 个月,才刚刚开始。


项目地址:github.com/tile-ai/tilelang 文档:tilelang.com 论文:arXiv:2504.17577 练习:github.com/tile-ai/tilelang-puzzles

暂无表态

想参与讨论或点赞?登录后使用完整功能

讨论回复(0)

暂无回复,登录后可参与讨论
合作

智谱 GLM-5 已上线

在智谱开放平台 BigModel.cn 打造 AI 应用。新一代旗舰模型 GLM-5 在推理、代码、智能体综合能力达到开源模型 SOTA。

领取 2000万 Tokens