MLIRベースのコンパイラとランタイム。MLモデルを統一IRに変換し、データセンターからモバイル・エッジデバイスまで展開できます。
facebookincubator/AITemplate
深層ニューラルネットワークをfp16のCUDA/HIP C++コードにコンパイルし、NVIDIAおよびAMD GPUでの高速推論を実現するPythonフレームワーク。
代替できる製品:TensorRT
- スター
- 4,735
- フォーク
- 386
- 未解決の Issue
- 163
- 最終コミット
- 先月
これは何?
AITemplate(AIT)は、深層ニューラルネットワークを推論サービング向けのCUDA(NVIDIA)またはHIP(AMD)C++コードに変換するPythonフレームワークです。TensorCoreおよびMatrixCoreハードウェアでのfp16ワークロードを対象とし、対応モデルとしてResNet、MaskRCNN、BERT、Vision Transformer、Stable Diffusionなどを挙げています。
コンパイラは、水平融合(並列のGEMMとLayerNorm演算を1つのカーネルにまとめる)、垂直融合(要素単位の演算、reduction、レイアウト変更をTensorCore/MatrixCoreの処理に組み込む)、メモリ融合(連結、分割、スライスを直前の演算と統合する)を適用します。コンパイルされたモデルはそれぞれ単独で動作するバイナリとなり、cuBLAS、cuDNN、TensorRTなどのランタイムに依存しません。
Pythonランタイムは余分なコピーを行わずにPyTorchテンソルを受け取ります。また、付属ツールのFX2AITはPyTorchモデルを変換でき、未対応の演算子を含むモデルも部分的に高速化できます。テスト済みの構成で使用するには、SM80以降のNVIDIA GPUまたはCDNA2 AMD GPUが必要です。
主な機能
- 01TensorCoreおよびMatrixCoreハードウェアを対象に、fp16ニューラルネットワークをCUDA/HIP C++にコンパイルします。
- 02水平・垂直・メモリの各演算融合を適用し、カーネル起動回数を減らします。
- 03cuBLAS、cuDNN、TensorRTに依存しない、単独で動作するモデルバイナリを生成します。
- 04Pythonランタイムは余分なコピーなしでPyTorchテンソルを直接受け取ります。
- 05FX2AITはPyTorchモデルを変換し、未対応の演算子を部分的に高速化します。
ユースケース
- NVIDIA A100クラスのGPUで、ResNet、BERT、Vision Transformerモデルをfp16でサービングする。
- AMD MIシリーズGPUでStable Diffusionの推論を実行する。
- AITが対応していない演算子を一部含むPyTorchモデルを高速化する。
クイックスタート
- 1
サブモジュールも含めてリポジトリをクローンする
git clone --recursive https://github.com/facebookincubator/AITemplate - 2
python ディレクトリに移動する
cd python - 3
Python wheel をビルドする
python setup.py bdist_wheel - 4
ビルドした wheel をインストールする
pip install dist/*.whl --force-reinstall
使う前に知っておきたいこと
- NVIDIA のサポートは Ampere などの SM80+ GPU でのみテストされています。古い T4 または V100 GPU では、一部のカーネルが動作しない場合があります。
- AMD のサポートは CDNA2 GPU(MI-210/250)でのみテストされています。古い CDNA1 GPU では、コンパイラに問題が発生する場合があります。
- ソースからビルドするには、適切な CUDA または ROCm コンパイラが必要です。誤ったコンパイラを使うと、パフォーマンスが低下します。
収録されている特集
トピック
よくある質問
- AITemplate とは?
- 深層ニューラルネットワークをfp16のCUDA/HIP C++コードにコンパイルし、NVIDIAおよびAMD GPUでの高速推論を実現するPythonフレームワーク。 AITemplate(AIT)は、深層ニューラルネットワークを推論サービング向けのCUDA(NVIDIA)またはHIP(AMD)C++コードに変換するPythonフレームワークです。TensorCoreおよびMatrixCoreハードウェアでのfp16ワークロードを対象とし、対応モデルとしてResNet、MaskRCNN、BERT、Vision Transformer、Stable Diffusionなどを挙げています。
- AITemplate は無料で使えますか?ライセンスは?
- AITemplate は Apache-2.0 ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- AITemplate は今もメンテナンスされていますか?
- 半年以内に更新あり。AITemplate の最終コミットは 2026年10月7日 です。
- AITemplate は何に使えますか?
- NVIDIA A100クラスのGPUで、ResNet、BERT、Vision Transformerモデルをfp16でサービングする。 AMD MIシリーズGPUでStable Diffusionの推論を実行する。 AITが対応していない演算子を一部含むPyTorchモデルを高速化する。
- AITemplate のインストール方法は?
- サブモジュールも含めてリポジトリをクローンする: git clone --recursive https://github.com/facebookincubator/AITemplate python ディレクトリに移動する: cd python Python wheel をビルドする: python setup.py bdist_wheel ビルドした wheel をインストールする: pip install dist/*.whl --force-reinstall
- AITemplate はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/facebookincubator/AITemplate
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
Python風のコードで高効率な深層学習向けGPUカーネルを記述できる言語・コンパイラ。CUDAより高い生産性を目指します。
OpenAI互換APIで大規模言語モデルを実行・提供する、高速でメモリ効率に優れたライブラリ兼サーバー。
GPU上でTransformerモデルを学習・推論するための、メモリ効率に優れた厳密なattentionカーネルFlashAttentionの公式実装。
NVIDIAが提供するPyTorch拡張。混合精度・分散学習用ユーティリティを備え、CUDAおよびC++の融合カーネルも利用できます。