Skip to main content
QUICK REVIEW

[論文レビュー] Acceleration of multiple precision matrix multiplication based on multi-component floating-point arithmetic using AVX2

Tomonori Kouya|arXiv (Cornell University)|Jan 16, 2021
Numerical Methods and Algorithms参考文献 9被引用数 4
ひとこと要約

本稿では、誤差補正変換(EFT)技術に基づく倍精度(DD)、三重精度(TD)、四重精度(QD)算術を用いた、高度に最適化されたAVX2アクセラレート型の多倍長行列乗算の実装を提示する。SIMD化されたEFT関数とAVX2命令を活用して並列計算およびメモリアクセスを最適化することで、非アクセラレート版と比較して3倍以上の高速化を達成した。Intel Core i9 や AMD EPYC といった現代のx86-64 CPUでは、10〜24スレッドまで安定した性能スケーリングを実現した。

ABSTRACT

In this paper, we report the results obtained from the acceleration of multi-binary64-type multiple precision matrix multiplication with AVX2. We target double-double (DD), triple-double (TD), and quad-double (QD) precision arithmetic designed by certain types of error-free transformation (EFT) arithmetic. Furthermore, we implement SIMDized EFT functions, which simultaneously compute with four binary64 numbers on x86_64 computing environment, and by using help of them, we also develop SIMDized DD, TD, and QD additions and multiplications. In addition, AVX2 load/store functions were adopted to efficiently speed up reading and storing matrix elements from/to memory. Owing to these combined techniques, our implemented multiple precision matrix multiplications have been accelerated more than three times compared with non-accelerated ones. Our accelerated matrix multiplication modifies the performance of parallelization with OpenMP.

研究の動機と目的

  • AVX2ベクタ命令を用いて、従来の実装を上回る多倍長行列乗算の高速化を図ること。
  • x86-64アーキテクチャ上で、DD、TD、QD算術のための効率的なSIMD化された誤差補正変換(EFT)関数の実装。
  • AVX2ロード/ストア命令を用いたMPF行列のメモリアクセス最適化。
  • OpenMPを用いた、AMD EPYC や Intel Core i9 といった高コア数CPUにおける性能スケーリングの評価。
  • ブロック行列乗算とストラッセンのアルゴリズムの並列化効率および高速化性能についての比較。

提案手法

  • _mm256_add_pd や _mm256_fmadd_pd といったインライン関数を用いて、AVX2最適化されたEFT関数(AVX2QuickTwoSum、AVX2TwoSum、AVX2TwoProd)を実装。
  • 256ビットレジスタを用いた効率的なAVX2ロード/ストア操作を可能にするために、MPFベクトルおよび行列のための新しいデータ構造を設計。
  • AVX2インライン関数を用いて、4つの多倍長数を同時に処理するSIMD化されたDD、TD、QDの加算および乗算ルーチンを構築。
  • EFT計算における精度とパフォーマンス向上のため、FMA命令を _mm256_fmadd_pd を通じて統合。
  • マルチコアシステムにおけるブロック行列乗算およびストラッセンのアルゴリズムのスレッドレベル並列化にOpenMPを活用。
  • Intel Core i9(10コア)およびAMD EPYC(24コア)システムを用いて、さまざまな行列サイズとスレッド数でのパフォーマンスを評価。

実験結果

リサーチクエスチョン

  • RQ1AVX2ベースのSIMD並列化は、DD、TD、QD算術を用いた多倍長行列乗算を顕著に高速化できるか?
  • RQ2AMD EPYC などの高コア数CPUにおけるOpenMPを用いたブロック行列乗算の性能スケーリングはどの程度か?
  • RQ3AVX2を用いても、8コアを超えるCPUではなぜストラッセンのアルゴリズムが約6倍の高速化に留まるのか?
  • RQ4AVX2は、複数成分浮動小数点型のためのメモリアクセスおよび算術カーネルをどの程度最適化できるか?
  • RQ5現代のマルチコアシステムにおいて、大規模で数値的に不安定な問題に対して、ブロック行列乗算はストラッセンのアルゴリズムよりもスケーラブルか?

主な発見

  • 提案されたAVX2最適化実装は、非アクセラレート版の多倍長行列乗算と比較して3倍以上の高速化を達成した。
  • Intel Core i9では10スレッドまで、AMD EPYCでは24スレッドまで、ブロック行列乗算が安定した高速化を示し、効果的な並列スケーリングを実証した。
  • ストラッセンのアルゴリズムは、再帰的呼び出しにおける非効率なスレッドスケジューリングのため、両CPUにおいて約6倍の高速化に留まり、AVX2の有無にかかわらず同様の限界を示した。
  • 24コアのAMD EPYCでは、すべての精度(DD、TD、QD)において、ブロック行列乗算がストラッセンのアルゴリズムを上回り、特に大きな行列サイズで顕著な性能優位を示した。
  • 256ビットレジスタを用いた最適化されたロード/ストア操作により、AVX2はメモリアクセスパフォーマンスを顕著に向上させ、全体の高速化に寄与した。
  • 本実装は、ブロック行列乗算が高コア数環境において好ましい選択肢であることを示した一方で、ストラッセン法は本質的な並列化のボトルネックにより制限を受けることが明らかになった。

より良い研究を、今すぐ始めましょう

論文設計から論文執筆まで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。