tile-ai/tilelang
Domain-specific language designed to streamline the development of high-performance GPU/CPU/Accelerators kernels
解决的问题
TileLang 是一种领域特定语言(DSL),旨在简化 GPU、CPU 和 NPU 上高性能内核的开发。它消除了开发者编写矩阵乘法(GEMM)和 FlashAttention 等操作的复杂低级代码的需要,使开发者能够专注于生产效率,同时仍能实现最先进的硬件优化。
工作原理
TileLang 基于 Apache TVM 构建,使用 Python 风格的语法定义内核操作。它采用可针对多种后端的目标编译器基础设施,包括 NVIDIA CUDA、AMD ROCm/HIP、华为 Ascend 和 Apple Metal。该语言提供高阶原语,用于内存分配(共享和片段)、流水线处理,以及硬件特定操作,如张量核矩阵乘法(T.gemm)。
适用人群
适用于需要在各种硬件架构上为深度学习工作负载实现高度优化数学运算的内核开发者和 AI 工程师。
主要亮点
- 多后端支持:支持 NVIDIA(SM70-SM120)、AMD(CDNA/RDNA)、华为 Ascend 950 和 Apple Metal(包括 M5 协同张量)的原生代码生成。
- Python 风格语法:使用
@tilelang.jit装饰器实现简洁的内核定义。 - 高级硬件特性:支持 Blackwell GPU 上的 TMA(张量内存加速器)、WGMMA 和块缩放 GEMM。
- C 风格集成:包含语言服务器协议(LSP),提供更好的 IDE 支持,包括内联提示和诊断功能。
- 丰富的工具链:提供 pass 可视化器、IR 导出配置和用于性能优化的自动调优器。
相关
- 项目
- 项目
- 项目
- 项目
- 项目