AMD:GluonブロックレベルモデルでInstinct MI355のMXFP4 5.255 TFLOPSを実現
AMD ROCmチームがMI355 GPU向けGluonプログラミングモデルで高性能GEMMカーネルを作成するチュートリアルを公開しました。最適化されたFP16カーネルはMFMA効率98.75%で1.489 TFLOPSを達成し、BF8(3.257 TFLOPS)およびMXFP4(5.255 TFLOPS)への拡張は現代のAIワークロードへの有効性を示しています。チュートリアルにはL2キャッシュミスを530万から410万に削減するワークグループリマッピングとswizzleが含まれています。
この記事はAIにより一次情報源から生成されました。
AMD ROCmブログチームは2026年5月22日、AMD Instinct MI355 GPU向けにGluonプログラミングモデルで高性能GEMM(汎用行列乗算)カーネルを作成する詳細なチュートリアルを公開しました。チュートリアルはFP16 GEMMで98.75%のMFMA効率(1.489 TFLOPS)を達成する手順と、現代の低精度フォーマットへの拡張を記録しています:BF8で3.257 TFLOPS、MXFP4で5.255 TFLOPSを実現しています。
GluonとはHIPとどう違うのか?
GluonはAMDのCDNAおよびRDNAアーキテクチャ向けGPUカーネル開発のブロックレベルプログラミングモデルです。構文はCUDA Tile APIや類似のTritonブロックレベル抽象化に着想を得ていますが、CDNAハードウェアの特性——MFMA行列乗算ユニット、マルチXCDチップレットトポロジー、L2キャッシュ構造——をターゲットにしています。
標準HIPプログラムとの違い:HIPはコンパイラがカーネルを最適化するC++ライクなCUDA同等のAPIを提供します。Gluonは開発者がテンソルレイアウト、パイプラインステージ、スレッドブロックあたりのレジスタバジェット、メモリアクセスのswizzleパターンを明示的に指定することを求めます。開発者の作業量は増えますが、より細かい制御が可能です——これはHIP標準最適化では通常到達できない95%以上のMFMA効率の実現に不可欠です。
GluonはROCmエコシステムのオープンソースコンポーネントで、ROCm 7.0リリース(2026年1月)からrocm-developer-toolsパッケージで利用できます。
最適化されたFP16カーネルはどうやって1.489 TFLOPSを達成するのか?
MI355はAMDのCDNA 4世代最新データセンターGPUで、8 XCDチップレットトポロジーを採用しています。理論上のピークFP16スループットは約1.508 TFLOPS(MFMAユニット理想充填時)です。チュートリアルは1.489 TFLOPS(理論値の98.75%)への手順を示しています:
- ブロックレベルタイリング:テンソルA(M×K)とB(K×N)をMFMA命令の粒度に合わせた128×128のブロックに分割します。
- パイプラインステージ:計算(MFMA命令)とメモリロード(LDSからレジスタへ)を4ステージパイプラインでインターリーブし、メモリレイテンシを隠蔽します。
- レジスタバジェット:開発者がスレッドブロックあたりのレジスタ数を明示的に制限(256 SGPR + 1024 VGPR)し、L1へのレジスタスピルを防ぎます。
- MFMA命令選択:チュートリアルは
mfma_f32_16x16x16f16を使用し、16×16のFP16入力を使って1クロックサイクルで16×16積ブロックを計算します。
これらの最適化により、カーネルは8192×8192×8192 GEMMで1.489 TFLOPSを達成し、朴素なHIP実装(520 TFLOPS)の約3倍の速度となっています。
BF8とMXFP4拡張は何をもたらすのか?
BF8(BFloat8)はLLMトレーニング向けに設計された8ビット浮動小数点フォーマットで、5ビットの仮数と3ビットの指数を持ちます。MI355はmfma_f32_16x16x32bf8命令を通じてBF8 GEMMをネイティブにサポートしており、32×16のBF8入力で16×16積を1クロックサイクルで計算します(要素サイズが半分なのでFP16の2倍の密度)。チュートリアルカーネルは3.257 TFLOPS BF8スループットを達成し、大規模言語モデルの事前学習に適しています。
MXFP4(マイクロスケーリングFP4)はさらに積極的な4ビットフォーマットで、グループ単位(通常32要素)で指数を共有します。FP16と比べてメモリ帯域幅を4分の1に削減しつつ、LLM推論では許容可能な品質を維持します。AMD MI355はmfma_f32_16x16x64mxfp4命令でMXFP4 GEMMをサポートします。チュートリアルカーネルは5.255 TFLOPS MXFP4スループットを達成し、MI355上でフロンティアモデルの推論デプロイに関連性があります。
ワークグループリマッピングとswizzle最適化の効果
CDNA 4アーキテクチャは8つのXCDチップレット(アクセラレータコンピューティングダイ)を持ち、L2キャッシュを共有しますが、各チップレットは独自のL1を持ちます。標準的な線形ワークグループマッピングでは、隣接するワークグループがL2の非隣接メモリ領域にアクセスするため、キャッシュスラッシングが発生します。
チュートリアルはワークグループリマッピングを導入しています:空間充填曲線(ヒルベルト曲線の変種)でワークグループIDを変換し、論理ID上で隣接するワークグループが隣接するL2キャッシュ領域にマッピングされるようにします。さらにメモリアクセスのswizzleパターンでHBMチャネルへのアクセスを均等分散させます。結果として、8192×8192 GEMMのL2キャッシュミスが530万から410万に減少(-23%)。直接的なスループット向上としては、メモリバウンドのGEMM領域で+6%となっています。
チュートリアルの意図的な退行例とは?
チュートリアルには、レジスタバジェットが誤っている診断例が含まれています——表面上は高速なはずのカーネルが実際にはスループットが73%低下する例です(FP16 384 TFLOPSで1.489 TFLOPSではなく)。原因:スレッドブロックあたりのレジスタを過剰割り当てした際のレジスタスピルです。
目的は、実際のカーネルでのレジスタスピルを識別・診断する方法を開発者に教えることです。チュートリアルではrocprofプロファイラを使って具体的なハードウェアカウンターでスピルを検出する方法と、Gluonコードを修正して解決する方法を示しています。GPUチュートリアルでは通常成功例しか示さないため、これは希少な実践です——診断例は本番環境での実際のパフォーマンス問題の解決方法を示す点で価値があります。
よくある質問
- Gluonプログラミングモデルとは何ですか?
- GluonはAMDのCDNAおよびRDNAアーキテクチャ向けGPUカーネル開発のブロックレベルプログラミングモデルです。テンソルレイアウト、パイプラインステージ、レジスタバジェットを開発者が明示的に制御できます。HIPとの違い:コンパイラが通常隠す詳細を開発者が制御する必要があり、工数は増えますが高いパフォーマンスを実現できます。
- MFMA効率98.75%とはどういう意味ですか?
- MFMA(行列融合積和演算)はAMD CDNAアーキテクチャの行列乗算用ハードウェア命令です。効率98.75%はカーネルがMFMAユニットの理論的ピークスループットの98.75%を利用していることを意味し、ハードウェア限界に非常に近い値です。
- MXFP4とは何ですか、なぜ重要なのですか?
- MXFP4(マイクロスケーリングFP4)はグループ単位で指数を共有する4ビット浮動小数点フォーマットです(通常32要素)。FP16と比べてメモリ帯域幅を4分の1に削減しつつ、LLM推論では許容可能な品質を維持します。AMD MI355はMFMA命令を通じてMXFP4をネイティブにサポートしています。