TileLang Vibe 项目

用 Python 风格写 GEMM/FlashAttention,跨 NVIDIA/AMD/Apple/华为昇腾统一后端

项目简介

TileLang(tile-lang)是一款面向 GPU/CPU/NPU 高性能算子开发的轻量级领域专用语言(DSL),由北京大学、Microsoft Research 等团队联合发起的开源项目。它把原本需要手写 CUDA/ROCm/Metal 内核才能拿到的极致性能,用类似 Python 的简洁语法封装出来,再通过 Apache TVM 的编译器基础设施做底层代码生成,让算法工程师在不牺牲生产力的前提下写出接近 SOTA 性能的 kernel。

核心功能

  • 多硬件后端统一抽象:同一份 TileLang 源码可下放到 NVIDIA CUDA、AMD ROCm、Apple Metal、华为昇腾 Ascend、WebGPU、MetaX MACA、Moore Threads MUSA、HYGON DCU 等后端,覆盖数据中心到端侧主流加速器。
  • 典型算子开箱即用:内置 GEMM、Dequant GEMM、FlashAttention、LinearAttention、卷积 IM2Col 等典型算子的可复用样例,并支持 MXFP4/MXFP8/FP16/INT8/INT4 等低精度 tensor core 路径。
  • 自动调度与并行 autotuning:自带 tile scheduler、persistent kernel 与并行 autotune,能在编译期寻找较优的 pipeline 与 buffer swizzle,降低手写微调门槛。
  • 调试与可视化工具链:Pass Visualizer、Pass Diff、IR Lower Trace、Source-aware 编译诊断、TileLang LSP(inlay hint/hover)帮助开发者理解并定位编译过程问题。
  • 分布式与跨主机复用:支持 TMA 集群拷贝(cluster multicast)、跨主机 CUDA 二进制缓存,方便在多机训练/推理框架中嵌入使用。

技术实现

TileLang 以 Pythonic DSL 表达 tile 级别的并行与数据复用模式,由前端解析为 TileLang IR,再借助 Apache TVM 的 TIRX 表示进入编译器后端。Backend CodeGen Registry 把各硬件后端的 lowering 与代码生成解耦,新增后端只需实现对应 lowering pass;针对 NVIDIA Hopper/Blackwell 提供 SM90/SM100/SM120 的 MMA 与 block-scaled GEMM 路径,针对 Apple Silicon 提供基于 simdgroup_matrix 的 Metal GEMM 路径,针对华为昇腾 950 则在 MLIR 中实现 SIMD/SIMT 生成与自动同步;编译器提供 pass 时序分析、IKET profiler 集成、CUDA timeline 工具,可直接定位性能瓶颈。项目已被 BitBLAS、AttentionEngine 等采用,并随 DeepSeek V3.2/V4 等模型演进算子样例。

快速上手

  1. 通过 PyPI 安装:pip install tilelang,再执行 python -c "import tilelang; print(tilelang.version)" 验证;
  2. 如需最新特性,可加 nightly 索引 pip install tilelang --find-links https://tile-ai.github.io/whl/nightly/;
  3. 在 Python 中以 @T.prim_func 装饰函数,调用 T.gemm(A, B, C) 一类 tile 原语即可描述 GEMM/Attention 算子;
  4. 使用 tilelang.Profiler 或 do_bench() 自动测量 latency,对比原生 PyTorch / 手写 CUDA kernel 的吞吐差距。

适用人群

  • AI 训练/推理系统工程师:希望用更少代码写出 SOTA 算子;
  • GPU/CPU 内核开发者:需要快速验证新硬件后端的 tiling 策略;
  • 编译器研究人员:在 TVM 生态中探索 DSL + 多后端 lowering 的实践路径;
  • 算法工程师:希望直接调用并改写 FlashAttention、LinearAttention 等典型算子而无需写 CUDA。

官方链接

团队信息

由 AI 猎手自动发现

评论与建议

0 条评论