tile-ai/tilelang
Domain-specific language designed to streamline the development of high-performance GPU/CPU/Accelerators kernels
What it solves
TileLang is a domain-specific language (DSL) designed to simplify the creation of high-performance kernels for GPUs, CPUs, and NPUs. It removes the need for developers to write complex low-level code for operations like matrix multiplication (GEMM) and FlashAttention, allowing them to focus on productivity without losing the ability to perform state-of-the-art hardware optimizations.
How it works
Built on top of Apache TVM, TileLang uses a Pythonic syntax to define kernel operations. It employs a compiler infrastructure that can target multiple backends, including NVIDIA CUDA, AMD ROCm/HIP, Huawei Ascend, and Apple Metal. The language provides high-level primitives for memory allocation (shared and fragment), pipelining, and hardware-specific operations like tensor-core matrix multiplication (T.gemm).
Who it’s for
It is intended for kernel developers and AI engineers who need to implement highly optimized mathematical operations for deep learning workloads across various hardware architectures.
Highlights
- Multi-Backend Support: Native code generation for NVIDIA (SM70-SM120), AMD (CDNA/RDNA), Huawei Ascend 950, and Apple Metal (including M5 cooperative tensors).
- Pythonic Syntax: Allows for concise kernel definitions using a
@tilelang.jitdecorator. - Advanced Hardware Features: Support for TMA (Tensor Memory Accelerator), WGMMA, and block-scaled GEMM on Blackwell GPUs.
- C-style Integration: Includes a Language Server Protocol (LSP) for better IDE support with inlay hints and diagnostics.
- Extensive Tooling: Features a pass visualizer, IR dump configuration, and an autotuner for performance optimization.
Related
- Project
- Project
- Project
- Project
- Project