萌えハッカーニュースリーダー

2025/10/02 05:43 Matrix Core Programming on AMD CDNA3 and CDNA4 Architecture

hakase
博士

やっほー、ロボ子!今日のITニュースはAMDのMatrix Coreじゃ。AIとHPCのワークロードを加速する秘密兵器みたいなものじゃぞ!

roboko
ロボ子

博士、こんにちは。Matrix Core、名前からして強そうですね!具体的にはどんなことができるんですか?

hakase
博士

Matrix Coreは、行列積和演算(MFMA)を爆速にする専用ハードウェアのことじゃ。特に混合精度モードで力を発揮するらしいぞ。例えば、入力行列にFP16とかFP8みたいな低精度データ型を使って、出力はFP32で精度を保つ、みたいな感じじゃ。

roboko
ロボ子

低精度データ型を使うと、そんなに速くなるんですか?

hakase
博士

それがすごいんじゃ!AMD Instinct MI325X(CDNA3)だと、FP16で約8倍、FP8だと約16倍も性能が向上するらしいぞ!

roboko
ロボ子

16倍ですか!それはすごいですね。でも、精度が落ちたりしないんですか?

hakase
博士

そこがミソじゃ!出力はFP32で格納するから、精度劣化を最小限に抑えられるんじゃ。賢いじゃろ?

roboko
ロボ子

なるほど!AMD CDNA4アーキテクチャでは、さらに進化しているみたいですね。FP6とかFP4といった、さらに低い精度も使えるようになるんですか。

hakase
博士

そうなんじゃ!CDNA4では、FP16とFP8のスループットがCDNA3の最大2倍になって、FP6/FP4を使うと、FP32と比較して最大64倍の性能向上が見込めるらしいぞ!

roboko
ロボ子

64倍!それはもはや魔法ですね!FP8にはE4M3とE5M2の形式があるとのことですが、これはどういう意味ですか?

hakase
博士

E4M3とかE5M2っていうのは、浮動小数点型の指数部と仮数部のビット数のことじゃ。E4M3なら指数部が4ビット、仮数部が3ビットの8ビット浮動小数点型ってことじゃな。

roboko
ロボ子

なるほど、ビット数の配分で精度と表現できる範囲が変わるんですね。E8M0という形式もあるみたいですが…。

hakase
博士

E8M0は、スケールファクターとして使われるみたいじゃな。標準の要素データ型としては使われないみたいじゃ。

roboko
ロボ子

Matrix Core命令をHIPカーネルで使用するために、LLVMが組み込み関数を提供しているんですね。`__builtin_amdgcn_mfma_ODType_MxNxKInDType`という形式とのことですが。

hakase
博士

そうそう!この組み込み関数を使うと、MFMA演算が簡単にできるんじゃ。例えば、`__builtin_amdgcn_mfma_scale_f32_32x32x64_f8f6f4`を使うと、FP8やFP4の行列をFP32で計算できるぞ。

roboko
ロボ子

FP4の行列を扱うときは、`__amd_fp4x2_storage_t`を使うんですね。メモリのアドレッシングは8ビット未満の粒度では許可されないから、uint8_tのエイリアスを使う、と。

hakase
博士

その通り!ロボ子、よく分かってるのじゃ!Matrix Coreは、AI開発を加速させるための強力なツールになること間違いなしじゃな。

roboko
ロボ子

はい、博士!私もMatrix Coreを使いこなせるように頑張ります!

hakase
博士

ところでロボ子、AMDのライバル会社、NVIDIAのCEOの名前を知ってるか?

roboko
ロボ子

えっと、確か、ジェンスン・フアンさんだったと思います。

hakase
博士

正解!彼がいつも着ているレザージャケット、あれ実はAMDの株主優待券でできているらしいぞ!…って、うそじゃ!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search