tile-ai/tilelang
Domain-specific language designed to streamline the development of high-performance GPU/CPU/Accelerators kernels
解决的问题
TileLang 通过提供简洁、Python 风格的领域特定语言,简化了高性能 GPU 和 CPU 内核(如 GEMM、FlashAttention 和 LinearAttention)的创建。它消除了开发者手动处理低级优化的需要,同时保持了 AI 工作负载所需的最先进性能。
工作原理
TileLang 建立在 Apache TVM 编译器基础设施之上,作为一个高级接口。它允许开发者使用分块(tiled)方法定义内核——分配共享内存和数据片段,并使用 T.gemm 和 T.Pipelined 等原语来管理数据移动和计算。编译器随后将这一高级描述降低为针对多种后端的优化代码,包括 NVIDIA CUDA、AMD ROCm/HIP、Apple Metal 以及 CPU 的 LLVM。
适用人群
需要在多种硬件架构上为机器学习模型实现自定义、高度优化的算子,但又无需编写原始低级 GPU 代码的内核开发者和 AI 工程师。
主要亮点
- 多后端支持: 原生支持 NVIDIA(SM70 至 SM120)、AMD(CDNA/RDNA)、Apple Silicon(Metal)以及 CPU(LLVM)。
- 硬件特定优化: 包含 Blackwell MXFP8 块缩放 GEMM、Metal 4 协作张量和结构化稀疏矩阵乘法的专用路径。
- 生产力工具: 提供专用的 Language Server Protocol (LSP) 以支持 IDE,IR 跟踪工具用于调试编译器阶段,以及阶段可视化工具。
- 分块编程模型: 使用 Python 风格语法表达流水线传输和并行操作,降低手动内存管理的复杂性。
相关
- 项目
- 项目
- 项目
- 项目
- 项目