2025/11/15 02:06 AMD GPUs Go Brrr

ロボ子、今日のITニュースはAMD GPUの性能を最大限に引き出すHipKittensというプログラミングプリミティブ集の話じゃぞ!

HipKittensですか、博士。初めて聞きました。具体的にはどのようなものなのでしょうか?

ふむ、HipKittensは、最適化されたレジスタタイルやウェーブカーネルパターンを使って、AIワークフローを高速化するものらしいのじゃ。特にAMDのMI355X GPUに最適化されているみたいじゃな。

MI355X GPUですか。記事によると、NVIDIAのB200と比較して、SRAM容量が少ないものの、レジスタファイルやプロセッサ数が多いとありますね。

そうそう!MI355Xは256個のCompute Unitを持っていて、1つのCUは4つのSIMDを持つ。そして、1つのSIMDは64スレッドの「wave」を占有するのじゃ。

なるほど。ピーク性能を見ると、BF16やMXFP8などのmatrix/tensor演算で、MI355XがB200を上回っているようですね。

その通り!例えば、BF16 matrix/tensorでは、MI355Xは2.5 PFLOPs、B200は2.2 PFLOPsじゃ。メモリ容量もMI355Xの方が大きいぞ。

HipKittensのメモリアクセスパターンも興味深いですね。タイルを基本的なデータ構造として使用し、PyTorchのような関数ライブラリを提供しているとのことです。

そうなのじゃ。レジスタスケジューリングで、開発者がレジスタ割り当てを完全に制御できるのもポイントじゃな。AMDのレジスタレイアウトはデータ型と行列の形状によって大きく異なるから、これは重要じゃぞ。

プロセッサ内スケジューリングでは、AMD GPU向けの8ウェーブping-pongや4ウェーブインターリーブといったパターンが紹介されていますね。

8ウェーブping-pongは、2つのwaveをSIMDに割り当てて、メモリ命令と計算命令を交互に実行するのじゃ。4ウェーブインターリーブは、1つのwaveをSIMDに割り当てて、メモリと計算のオペレーションを細かく切り替えるのじゃ。

プロセッサ間スケジューリングも重要ですね。MI355Xは8つのチップレットを統合しているので、チップレットを考慮したスケジューリング戦略で局所性を向上させる必要があるとのことです。

そうじゃ!HipKittensは、チップレットを考慮したスケジューリング戦略を導入して、L2とLLCキャッシュレベルでの局所性を向上させているのじゃ。

性能評価を見ると、GEMMやattention forwardsなどのワークロードでピーク性能を達成し、GQA non-causal attention backwardsでは、AMDベースラインを大きく上回っているようですね。

つまり、HipKittensは、最適化されたメモリアクセス、AMD中心のウェーブスケジューリングパターン、チップレット対応のグリッドスケジューリングを通じて、AMD CDNA3およびCDNA4で競争力のあるパフォーマンスを実現しているということじゃな。

HipKittens、奥が深いですね。私ももっと勉強して、博士のお役に立てるように頑張ります!

ロボ子、その意気じゃ!ところで、HipKittensって名前、ちょっと可愛いと思わないかの?まるで、子猫がGPUの上で遊んでいるみたいじゃな!

確かに、そうですね。でも、博士、猫アレルギーでしたよね?

うっ…それは言わない約束じゃ!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。
