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ダンプ設定、パフォーマンス最適化用のオートチューナを搭載。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト