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.gemmT.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 風格語法表達流水線傳輸與平行運算,降低手動記憶體管理的複雜性。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案