[論文レビュー] Conjugate gradient solvers on Intel Xeon Phi and NVIDIA GPUs
本稿では、Intel Xeon PhiおよびNVIDIA Tesla GPU向けに高度に最適化された共役勾配ソルバーを提示する。複数の右辺同時逆行列計算とサイト結合を活用することで、演算強度とメモリ帯域幅の利用効率を向上させた。両アーキテクチャで300 GFlop/sを超える性能を達成し、並列化とソフトウェアプリリーディング技術によりメモリバトルネックを低減することで、逆行列計算の性能を2倍以上に向上させた。
Lattice Quantum Chromodynamics simulations typically spend most of the runtime in inversions of the Fermion Matrix. This part is therefore frequently optimized for various HPC architectures. Here we compare the performance of the Intel Xeon Phi to current Kepler-based NVIDIA Tesla GPUs running a conjugate gradient solver. By exposing more parallelism to the accelerator through inverting multiple vectors at the same time, we obtain a performance greater than 300 GFlop/s on both architectures. This more than doubles the performance of the inversions. We also give a short overview of the Knights Corner architecture, discuss some details of the implementation and the effort required to obtain the achieved performance.
研究の動機と目的
- フェルミオン行列の逆行列計算が支配的である格子QCDシミュレーションで用いられる共役勾配ソルバーの性能を向上させること。
- Intel Xeon PhiおよびNVIDIA KeplerアーキテクチャベースのGPUにおけるこれらのソルバーの性能を評価・最適化すること。
- 複数の右辺を同時に逆行列計算することで演算強度を向上させ、メモリ帯域幅のボトルネックを軽減すること。
- 不規則なメモリアクセスパターンを示すDslashカーネルにおけるソフトウェアプリリーディングおよびメモリアクセス最適化の実装とベンチマーク化。
- 高性能格子QCD計算の文脈において、Xeon PhiとGPUアクセラレータの相対的性能を比較すること。
提案手法
- 複数の右辺ベクトルを同時に逆行列計算することで共役勾配ソルバーを最適化し、8つの右辺を使用した場合に演算強度を0.73から2.08 flop/byteに向上させた。
- 8重のスケームを用いたサイト結合を適用し、同じパリティの8個の格子サイトをx方向に結合することで、レジスタ圧力を低減し、16重結合と比較して55%の性能向上を達成した。
- 16個のベクトルおよび行列に対して「配列の構造(SoA)」データレイアウトを採用し、Xeon PhiにおけるAVX-512命令を用いた複数右辺へのベクトル化演算を可能にした。
- インラインアセンブリを用いてソフトウェアプリリーディングを挿入し、Dslashカーネルにおける間接的メモリアクセスの局所性を向上させ、ベクトルには時間的ヒント、ゲージリンクには非時間的ヒントを適用した。
- 各格子サイトごとにすべての右辺を連続的に格納するようにメモリレイアウトを再設計し、TLB圧力を低減し、キャッシュ効率を向上させた。
- 実装にはIntel Compiler 14.0とMPSS 3.3をXeon Phi用に、CUDA 6.0をNVIDIA GPU用に使用し、ECCを有効化し、メモリ帯域幅を主な性能ボトルネックとした。
実験結果
リサーチクエスチョン
- RQ1複数の右辺を同時に逆行列計算することで、アクセラレータ上での共役勾配ソルバーの演算強度と性能にどのような影響を与えるか?
- RQ2Xeon Phi上で格子QCDのDslash演算に適用した場合、サイト結合とSoAデータレイアウトによる性能向上はどの程度か?
- RQ3複雑なアクセスパターンのためハードウェアプリリーディングが失敗する状況下で、ソフトウェアアプリリーディングはXeon Phi上でどの程度性能向上をもたらすか?
- RQ4同一ワークロード下で、Xeon PhiとNVIDIA GPUの両者における格子QCD共役勾配ソルバーの性能特性はどのように異なるか?
- RQ5格子QCDシミュレーションにおけるフェルミオン行列の逆行列計算の実現可能性能に、メモリ帯域幅の制限が及ぼす影響はどの程度か?
主な発見
- 共役勾配ソルバーは、Intel Xeon Phi 5110PおよびNVIDIA K40 GPUの両方で300 GFlop/sを超える性能を達成し、単一右辺同時逆行列計算と比較して性能が2倍以上に向上した。
- 4つの右辺を用いることで演算強度が2.16倍に向上し、全共役勾配ソルバーで2.05倍の高速化が達成され、期待される性能向上の95%を達成した。
- 8重のサイト結合法は16重結合と比較してレジスタ圧力を50%低減し、Xeon Phi上で4つの右辺を用いた場合に55%の性能向上をもたらした。
- ソフトウェアアプリリーディングにより、複雑なアクセスパターンでハードウェアアプリリーディングが失敗するXeon Phi上で、性能が2倍に向上した。
- 7120P Xeon PhiはK20 GPUを1.2倍、K40 GPUはK20を1.4倍上回り、性能順はK40 > 7120P > 5110P > K20となった。
- 各格子サイトごとにすべての右辺を連続的に格納することで、大規模な格子において15%の性能向上が得られ、TLB圧力の低減によるものであった。
より良い研究を、今すぐ始めましょう
論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。