AMD行列演算ユニット(Matrix Cores)の挙動を正確にモデル化する手法
Accurate Models of AMD Matrix Cores
Accurate Models of AMD Matrix Cores
AMDの行列演算ユニット(Matrix Cores)を正確にモデル化するための技術的なアプローチについて解説します。ハードウェアの仕様に基づいたシミュレーションや性能予測の精度を向上させるための議論が求められています。
「行列乗算器の機能は、ベンダー間や同一ベンダーのアーキテクチャ間でも異なります[...] その結果、デバイス間での小さな行列乗算結果の再現性(差異)を確保することは不可能であり、ソフトウェア制御で解決することもできません。行列乗算器の実装詳細は文書化されていないため、計算結果の不一致を解釈するのは困難です」
推測(というより確証はないけど)では、異なるベンダーのアーキテクチャ間(あるいは同じベンダーでも世代が違うもの)での行列乗算における微妙な違いが、ローカルLLMを明示的にテストされていない環境やスタック(ROCm vs. CUDAなど)で動かそうとした時に発生するソフトウェアクラッシュの大部分の原因になっているんじゃないかな。
となると、これは将来的にかなり大きな問題になるよね。要するにこういうことだ:
浮動小数点演算におけるIEEE-754のような、行列乗算の「標準仕様」が必要だ。AIアクセラレータ(行列乗算回路を実装するGPU、CPU、NPU、ICメーカー)の全ての将来のベンダーがこれに従うことで、あるベンダーの行列乗算が別のベンダーのものと「完全かつ精密に互換性がある」状態にする必要がある。
ハードウェアベンダーは、速度、電力効率、チップ上の行列乗算エンジンの数、並列化の最適化なんかではもちろん自由に競い合えばいいけど、基本的な行列乗算の演算そのものは、ベンダーや将来の製品バージョンをまたいでも「完全かつ精密に互換」であるべきだ。
ステップ1:まずはこの仕様が必要……(もしかしてIEEEが既に取り組んでる?だとしたら前進だね!)。
ステップ2:ハードウェアベンダーがそれを実装して、将来的に行列乗算を使うすべてのICで普遍的に互換性を持たせる……これが必要だね。