triton-lang/triton
Development repository for the Triton language and compiler
Triton とは?
Triton は、ディープラーニング演算用のカスタム GPU カーネルを書くためのオープンソースのプログラミング言語およびコンパイラです。PyTorch などの高レベルフレームワークと低レベルの CUDA/ROCm コードの間に位置し、生の CUDA よりも高い生産性を提供しながらも、パフォーマンスが重要なプリミティブ(例:アテンション、行列乗算、畳み込み)を手作業で最適化できる柔軟性を維持しています。
主なアイデア
| アイデア | あなたにとっての意味 |
|---|---|
| GPU カーネル用 DSL | Python に似た構文(tl.* 演算)でカーネルを記述。コンパイラが効率的な GPU マシンコードに変換します。 |
| MLIR ベースのバックエンド | コンパイラは LLVM の MLIR インフラストラクチャを使用しており、NVIDIA(NVPTX)と AMD(AMDGPU)の両方の GPU をターゲットにし、拡張が容易です。 |
| 自動チューニング | Triton は、現在のハードウェア上で最速のカーネルバージョンを見つけるために、タイルサイズやその他のパラメータを自動的に探索できます。 |
| インタプリタモード | TRITON_INTERPRET=1 を設定すると、GPU がなくても CPU 上でカーネルを実行でき、デバッグに便利です。 |
| プラグインパイプライン | add_stages_inspection_hook API を使って、カスタムコンパイラステージを挿入できます。 |
セットアップ方法
# PyPI から最新の安定版をインストール(Python 3.10–3.14)
pip install triton
Linux 用のバイナリウェHEEL が提供されています。NVIDIA Compute Capability 8.0+ および AMD ROCm 6.2+ をサポートしています。
ソースからビルドしたい場合(例:カスタム LLVM を使用する場合)、README に手順が記載されています:
- リポジトリをクローンし、Python のビルド要件をインストール。
make dev-install-llvmを実行して、Triton が期待する LLVM バージョンを取得・コンパイルする、または 手動の LLVM ビルド手順に従う。- 編集可能なモードでパッケージをインストール(
pip install -e .)。
一般的なワークフロー(Python 例)
import triton
import triton.language as tl
@triton.jit
def matmul_kernel(A, B, C, M, N, K,
BLOCK_M: tl.constexpr, BLOCK_N: tl.constexpr, BLOCK_K: tl.constexpr):
pid = tl.program_id(0)
# ブロックインデックスの計算 …
# タイルの読み込み、計算、結果の保存 …
# 実行
matmul_kernel[(grid_x,)](A, B, C, M, N, K,
BLOCK_M=128, BLOCK_N=128, BLOCK_K=32)
*@triton.jit デコレータは、関数を GPU カーネルにコンパイルするように Triton に指示します。タイルサイズ(BLOCK_*)は自動チューナーに任せるか、手動で設定できます。
Triton で作れるもの
- カスタムアテンションカーネル – 例:flash-attention の実装。
- 最適化された行列乗算 – 特定の形状では cuBLAS を置き換える。
- 実験的な演算子 – 主流ライブラリに登場する前に新しいプリミティブを試す。
- 研究プロトタイプ – CUDA を書かずに、カーネルのアイデアを素早く反復可能。
コミュニティとリソース
- ドキュメント: https://triton-lang.org – インストールガイド、プログラミングガイド、デバッグチュートリアル。
- カンファレンス: 年1回の Triton Developer Conference(2026 の詳細はリポジトリに掲載)で、講演、ライトニングトーク、ポスター発表があります。
- パズル: 小さなチャレンジのコレクション(
srush/Triton-Puzzles)で、インタプリタで実行可能。学習に最適です。 - 貢献方法: プルリクエストを歓迎。ガイドラインは
CONTRIBUTING.mdを参照。 - 開発コンテナ:
triton-dev-containersリポジトリから、再現可能な開発環境用の Docker/VSCode デベロッパーボックスを提供しています。
互換性とハードウェアサポート
- OS: 現在のリリースでは Linux のみ。
- GPU: Compute Capability 8.0 以上の NVIDIA GPU、ROCm 6.2 以上の AMD GPU。CPU サポートは開発中です。
TL;DR
Triton は、生の CUDA/ROCm に下がることなく、ディープラーニングワークロード用の高性能 GPU カーネルを書ける、Python 友好的な DSL およびコンパイラです。pip install triton でインストールし、@triton.jit デコレータでカーネルを記述し、MLIR ベースのバックエンドがコード生成、自動チューニング、ベンダー間互換性を処理します。プロジェクトは積極的にメンテナンスされており、完全なドキュメントサイト、年1回の開発者カンファレンス、そして親しみやすいオープンソースコミュニティを持っています。
関連
- Dispatch
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト