[論文レビュー] A matrix math facility for Power ISA(TM) processors
この論文は、IBMのPOWER10プロセッサ向けに、Matrix-Multiply Assist (MMA) 機能をPower ISA™ バージョン3.1に導入した。512ビットの累積レジスタを用いて、32ビット、64ビット、bfloat16精度の小さな行列に対するランク-k更新を実行することで、POWER9と比較して1コアあたり4倍の性能を達成し、消費電力はわずか8%増加にとどまる。これにより、顕著なエネルギー効率の向上が実現される。
Power ISA(TM) Version 3.1 has introduced a new family of matrix math instructions, collectively known as the Matrix-Multiply Assist (MMA) facility. The instructions in this facility implement numerical linear algebra operations on small matrices and are meant to accelerate computation-intensive kernels, such as matrix multiplication, convolution and discrete Fourier transform. These instructions have led to a power- and area-efficient implementation of a high throughput math engine in the future POWER10 processor. Performance per core is 4 times better, at constant frequency, than the previous generation POWER9 processor. We also advocate the use of compiler built-ins as the preferred way of leveraging these instructions, which we illustrate through case studies covering matrix multiplication and convolution.
研究の動機と目的
- POWER10におけるBLAS3ワークロードの性能ギャップ、特に高スループットを要する密度行列線形代数を必要とするビジネスアナリティクスおよび機械学習ワークロードを解消すること。
- アーキテクチャ上でのレジスタファイルの拡張や新しいコンパイルツールチェーンの導入を必要とせず、行列乗算、畳み込み、その他のカーネルを加速する、ハードウェア・ソフトウェア共同設計のソリューションを設計すること。
- コンパイラのビルトイン関数を活用して、新しいMMA命令を効率的に使用できるようにし、後方互換性と保守性を保ちながら高い性能を実現すること。
- MMA機能がPOWER9および従来のベクタのみの命令セットと比較して、顕著な性能およびエネルギー効率の向上を実現することを実証すること。
提案手法
- MMA機能は、入力に使用される64×128ビットのベクタ・スカラレジスタとは分離された、8つの新しい512ビットの累積レジスタを導入し、ランク-k行列更新の途中結果を格納する。
- マトリクス数学エンジン(MME)機能ユニットは、MMA命令を他のPower ISA命令と並列に実行し、一般計算と完全に重ね合わせることで、性能を最大化する。
- MMA命令は、例えば32ビット浮動小数点の4×4行列など、小さな行列を対象としており、入力にはベクタレジスタ、出力には累積レジスタを使用することで、GEMMおよび畳み込みカーネルの効率的計算を可能にする。
- MMEユニットは電源ガーディングを採用し、初期段階では累積レジスタを非アーキテクチャ的状態に保つことで、将来にわたる後方互換性を確保した上で、完全なアーキテクチャ状態への昇格を可能にする。
- GCCおよびLLVMにコンパイラビルトインを導入し、細かく制御可能な高水準なコード生成を可能にし、ハンドライティングされたアセンブリを避けても性能を維持する。
- 実装は、プリシリコンコアモデルを用いたシミュレーションにより検証され、DGEMMおよびHPLワークロードを対象に、性能と消費電力の測定が行われた。
実験結果
リサーチクエスチョン
- RQ1新しい命令セット拡張は、パワー制限のあるレガシISA環境において、密度行列線形代数カーネルの性能をどのように向上させ得るか?
- RQ2専用のマトリクス数学エンジンは、レジスタファイルの拡張や新しいコンパイル技術の導入を要せず、機械学習およびアナリティクスワークロードの性能をどの程度向上させ得るか?
- RQ3実際のプロセッサコアにおいて、従来のベクタのみのアプローチと比較して、MMA命令を用いることで得られる性能および電力効率の向上はどの程度か?
- RQ4コンパイラビルトインは、コードの保守性と性能を保ちながら、MMA機能の能力を効果的に公開できるか?
- RQ5MMA機能は、実際のワークロードにおいて、32ビット、64ビット、bfloat16などの異なる精度フォーマットでどのようにスケーリングするか?
主な発見
- POWER10プロセッサは、同じクロック周波数でPOWER9と比較して、行列乗算カーネルの1コアあたり4倍の性能を達成した。
- MMA機能は、POWER10上でVSXのみのコードと比較して2.5倍の性能を発揮し、消費電力はわずか8%増加にとどまった。これは、優れたエネルギー効率を示している。
- POWER9と比較すると、MMA対応のPOWER10コアは24%の消費電力削減で5倍の性能を達成し、計算あたりのエネルギーはほぼ7倍削減された。
- MMA命令は、すでにOpenBLASおよびEigenに統合されており、倍精度、単精度、bfloat16精度をサポートしており、高性能線形代数ライブラリでの即時利用が可能である。
- コンパイラビルトインの使用により、最小限のオーバーヘッドで効率的なコード生成が可能となり、ハンドライティングされたアセンブリの代替として保守性の高い選択肢を提供する。
- MMA機能により、畳み込みおよび離散フーリエ変換カーネルの効率的実装が可能となり、ステンシルおよび信号処理ワークロードへの応用可能性も広がる。
より良い研究を、今すぐ始めましょう
論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。