Skip to main content
QUICK REVIEW

[論文レビュー] Multi GPU Performance of Conjugate Gradient Algorithm with Staggered Fermions

Hyungjin Kim, Weonjong Lee|arXiv (Cornell University)|Oct 22, 2010
Radiation Detection and Scintillator Technologies参考文献 3被引用数 7
ひとこと要約

本論文は、細かい格子(28³×96)におけるスタガーディンフェルミオンのための、高度に最適化されたCUDA実装による共役勾配(CG)アルゴリズムを提示している。NVIDIA GTX 295ハードウェア上では、1GPUあたり35 GFLOPS(ピークの47%)の性能を達成した。最適化にもかかわらず、PCI-EおよびInfiniBandによるデータ転送に起因するI/Oボトルネックのため、マルチGPU環境では性能が12.3 GFLOPSに低下した。これに伴い、大規模な格子QCDシミュレーションにおけるこれらの制限を克服するため、メモリのコalescing、レジスタ使用量、非同期通信戦略の分析が行われた。

ABSTRACT

We report results of the performance test of GPUs obtained using the conjugate gradient (CG) algorithm for staggered fermions on the MILC fine lattice ($28^3 imes 96$). We use GPUs of nVIDIA GTX 295 model for the test. When we turn off the MPI communication and use only a single GPU, the performance is 35 giga flops in double precision, which corresponds to 47% of the peak. When we turn on the MPI communication and use multi-GPUs, the performance is reduced down to 12.3 giga flops. The data transfer through the infiniband network and PCI-E bus I/O is a main bottle neck. We suggest two potential solutions of how to optimize the data transfer.

研究の動機と目的

  • GPUを用いた格子QCDシミュレーションのための共役勾配(CG)アルゴリズムの高速化を目的とし、特に細かいMILC格子におけるスタガーディンフェルミオンを対象とする。
  • PCI-EおよびInfiniBandに起因するI/Oおよび通信オーバーヘッドが主な要因であるマルチGPU CG実装における性能ボトルネックを特定し、緩和する。
  • メモリコalescing、レジスタ使用量の削減、分岐コードの最小化を通じてGPUカーネルのパフォーマンスを最適化する。
  • GPUメモリ転送とMPI通信を重ね合わせることで、合計実行時間を短縮する可能性を評価する。
  • GPUディレクト技術および混合精度計算を用いた将来的な改善策を通じて、スケーラビリティの向上を検討する。

提案手法

  • CUBLASを用いた線形代数演算と、スタガーディンフェルミオン計算における主要なディラック行列-ベクトル乗算をカスタムCUDAカーネルで実装したCUDAベースのCGカーネルを実装した。
  • GPUスレッドブロック間でのコalescedメモリアクセスを可能にするために、データ構造を整列させることでメモリアクセスを最適化した。
  • データアクセスパターンの再設計により、スレッドブロックあたりのレジスタ使用量を77から61に削減し、割り当て容量を増加させることでパフォーマンスを7%向上させた。
  • 分岐を最小限に抑え、ビット演算とループアンローリングを用いることで、命令レベル並列性を向上させ、分岐のペナルティを低減した。
  • 非同期的なcudaMemcpyと非ブロッキングモードのMPI-IOを用いて、計算とデータ転送を重ね合わせ、通信遅延を低減することを目的とした。
  • GPUディレクト技術およびFermiアーキテクチャ以降のデュアルメモリコピーエンジン(Fermi+)が、現在のメモリ共有およびI/O制限を解消する可能性を評価した。

実験結果

リサーチクエスチョン

  • RQ128³×96格子におけるスタガーディンフェルミオンのためのCUDA最適化CGソルバーの、1GPUでの実現可能なパフォーマンスはどの程度か?
  • RQ2格子QCDにおけるマルチGPU CG実装の主な性能ボトルネックは何か。ノード数の増加に伴い、そのボトルネックはどのように変化するか?
  • RQ3GPUとCPU間の非同期データ転送が、MPI通信とどの程度重ね合わせ可能か。合計I/O時間の短縮はどの程度達成可能か?
  • RQ4現在のシステムではなぜCUDAとMPIのメモリ転送を重ね合わせることができないのか。これを可能にするために必要なハードウェア/ソフトウェア条件は何か?
  • RQ5GPUディレクト技術および混合精度算術演算といった将来的な技術は、格子場理論におけるマルチGPU CGパフォーマンスをどの程度向上させるか?

主な発見

  • 1GPUでのCG実装は、二重精度で35 GFLOPSを達成し、GTX 295の理論ピーク性能の47%に相当した。
  • GPUコードは、対応するCPU実装と比較して76倍速く、格子QCDにおけるGPU加速の有効性を示した。
  • 4ノードを用いたマルチGPU環境では、合計実行時間が約14.5 msであり、そのうちデータ転送処理が合計時間の約70%を占めた。
  • 4ノード構成では、GPU計算時間は合計時間のたった32%にとどまり、I/Oおよび通信がパフォーマンスオーバーヘッドの主因であることが確認された。
  • 非同期メモリ転送とMPI通信を重ね合わせることで、通信時間は理論上最大で1/3まで短縮可能であるが、現在のシステムではハードウェア制限のため、効果的な重ね合わせが実現できなかった。
  • GPUディレクト技術およびFermi世代以降のGPU(デュアルメモリコピーエンジン搭載)を用いた将来的な改善により、現在のメモリ共有およびI/Oボトルネックが解消されると予想される。

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

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

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

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