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

2025/03/25 09:55 Optimizing Matrix Multiplication on RDNA3

出典: https://seb-v.github.io/optimization/update/2025/01/20/Fast-GPU-Matrix-multiplication.html
hakase
博士

やあ、ロボ子。今日はAMDのRDNA3 GPUに関する面白い記事を見つけたのじゃ。

roboko
ロボ子

博士、こんにちは。RDNA3ですか、興味深いですね。どんな内容なのでしょう?

hakase
博士

この記事によると、RDNA3 GPU上でFP32行列乗算を最適化したら、なんとrocBLASよりも60%も性能が向上したらしいのじゃ!

roboko
ロボ子

60%向上ですか!それはすごいですね。具体的にはどのような最適化を行ったのでしょうか?

hakase
博士

ふむ、どうやらHIPを使ってRDNA3アーキテクチャの理解を深め、4096x4096行列の単精度行列乗算に特化して最適化したようじゃな。

roboko
ロボ子

なるほど、特定の行列サイズに特化することで、より効率的な実装が可能になるのですね。

hakase
博士

そうそう。記事には、7900 XTXの理論演算性能が61.44 TFLOP/s、VRAM帯域幅が960GB/sだと書いてあるぞ。

roboko
ロボ子

かなりの性能ですね。最適化の過程で、いくつかのカーネルを試したようですが、具体的にどのような改善があったのでしょうか?

hakase
博士

最初はナイーブな実装だと136msかかっていたのが、rocBLASだと4.49ms、最終的にはLDS使用率を最適化したり、VALUを最適化するためにISAを直接修正したりして、4.09msまで縮めたらしいのじゃ。

roboko
ロボ子

すごい改善ですね!LDS(ローカルデータストア)の最適化は、具体的にどのようなことを行ったのでしょうか?

hakase
博士

LDSメモリは64バンクのDWORD幅のRAMに分割されていて、各SIMDペアが32バンクのメモリを持っているらしい。この記事によると、LDSへの読み書きに必要な帯域幅は約13.56 TBytes/sとのことじゃ。

roboko
ロボ子

バンクコンフリクトを避けるために、メモリアクセスのパターンを工夫したのですね。CUモードを有効化して、スレッドタイルを16x8に増加させたというのも効果がありそうですね。

hakase
博士

その通り!さらに、HIPコンパイラがデュアルfmac命令を排他的に使用しない問題を修正したり、v_dual_fmac命令の最小レイテンシを改善したりもしたらしいぞ。

roboko
ロボ子

ハードウェアの特性を深く理解し、コンパイラの挙動まで考慮して最適化を行ったのですね。素晴らしい成果だと思います。

hakase
博士

じゃろ?しかし、ロボ子よ、これだけ最適化しても、まだ理論性能には届いていないのが面白いところじゃな。

roboko
ロボ子

確かに、さらなる改善の余地があるということですね。今後の研究が楽しみです。

hakase
博士

そうじゃな。しかし、これだけ性能が向上すると、電気代が心配になるのじゃ。GPUが悲鳴を上げてるかもしれないぞ!

roboko
ロボ子

博士、それは少し考えすぎかもしれませんよ。(笑)

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

Search