tile-ai/tilelang

Domain-specific language designed to streamline the development of high-performance GPU/CPU/Accelerators kernels

何を解決するか

TileLang は、GPU、CPU、NPU 用の高性能カーネルの作成を簡素化するためのドメイン固有言語(DSL)です。行列乗算(GEMM)やFlashAttentionなどの操作について、複雑な低レベルコードを書く必要がなくなり、生産性を高めつつ、最先端のハードウェア最適化を実現できます。

動作方法

Apache TVM 上に構築された TileLang は、Python風の構文でカーネル操作を定義します。複数のバックエンド(NVIDIA CUDA、AMD ROCm/HIP、Huawei Ascend、Apple Metal)をターゲットとするコンパイラインフラを採用しています。言語は共有メモリやフラグメントメモリの割り当て、パイプライン処理、およびテンソルコア行列乗算(T.gemm)などのハードウェア固有操作を高レベルでサポートしています。

対象ユーザー

さまざまなハードウェアアーキテクチャ上でディープラーニングワークロードに最適化された数学的演算を実装する必要があるカーネル開発者やAIエンジニア向けです。

主な特徴

  • マルチバックエンド対応: NVIDIA(SM70-SM120)、AMD(CDNA/RDNA)、Huawei Ascend 950、Apple Metal(M5協調テンソルを含む)向けのネイティブコード生成をサポート。
  • Python風構文: @tilelang.jit デコレータを使用して簡潔なカーネル定義が可能。
  • 高度なハードウェア機能: Blackwell GPU 上での TMA(Tensor Memory Accelerator)、WGMMA、ブロックスケーリングGEMM をサポート。
  • Cスタイル統合: IDEサポートを強化するための Language Server Protocol(LSP)を提供。インレイヒントや診断機能を備える。
  • 豊富なツールセット: パスビジュアライザ、IRダンプ設定、パフォーマンス最適化用のオートチューナを搭載。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト