[論文レビュー] In-Situ Assessment of Device-Side Compute Work for Dynamic Load Balancing in a GPU-Accelerated PIC Code
本稿では、GPUクロックタイマーを用いたデバイス側計算作業のリアルタイムで低オーバーヘッドな測定を導入することで、WarpX粒子-場コードにおけるGPU最適化されたイン・サイト動的負荷バランシングを提案する。この手法は、6144 GPUで理論的最大スピードアップの62–74%(6 GPUでは88%)を達成し、静的負荷バランシングやベースラインの非バランシング実行を著しく上回り、レーザーイオン加速シミュレーションでは負荷バランシングなしのケースに比べ3.8倍のスピードアップを達成した。
Maintaining computational load balance is important to the performant behavior of codes which operate under a distributed computing model. This is especially true for GPU architectures, which can suffer from memory oversubscription if improperly load balanced. We present enhancements to traditional load balancing approaches and explicitly target GPU architectures, exploring the resulting performance. A key component of our enhancements is the introduction of several GPU-amenable strategies for assessing compute work. These strategies are implemented and benchmarked to find the most optimal data collection methodology for in-situ assessment of GPU compute work. For the fully kinetic particle-in-cell code WarpX, which supports MPI+CUDA parallelism, we investigate the performance of the improved dynamic load balancing via a strong scaling-based performance model and show that, for a laser-ion acceleration test problem run with up to 6144 GPUs on Summit, the enhanced dynamic load balancing achieves from 62%--74% (88% when running on 6 GPUs) of the theoretically predicted maximum speedup; for the 96-GPU case, we find that dynamic load balancing improves performance relative to baselines without load balancing (3.8x speedup) and with static load balancing (1.2x speedup). Our results provide important insights into dynamic load balancing and performance assessment, and are particularly relevant in the context of distributed memory applications ran on GPUs.
研究の動機と目的
- 高動的粒子による負荷不均衡から生じる、分散メモリ型GPUアクセcelerated粒子-場コードにおける性能劣化の解消。
- 実行時において最小限のパフォーマンスオーバーヘッドで、GPU固有のイン・サイト技術を用いて計算作業を測定する手法の開発。
- 大規模GPUクラスタ上での強スケーリングおよび弱スケーリング性能を向上させるために、WarpXにおける動的負荷バランシングの改善。
- ヒューリスティック法、GPUクロック、CUPTIといった異なるコスト評価戦略が負荷バランシング効率およびパフォーマンスに与える影響の評価。
- 現実のプラズマ物理学シミュレーションにおける大規模スケールでの限られたGPUメモリの有効利用のため、動的負荷バランシングが不可欠であることを実証。
提案手法
- サブドメインの計算作業に対する実際のカーネル実行時間を測定するため、イン・サイトでカーネル内にGPUクロックタイマーを組み込むことで、最小限のオーバーヘッドで実行時間を測定する。
- プロファイリングAPI(例:CUPTI)ではなく、GPUハードウェアクロックを用いたベンダーニュートラルなランタイム測定戦略を導入する。
- AMReXのブロック構造メッシュフレームワークを用いて、測定された計算コストを動的負荷バランシングフレームワークに統合する。
- 測定された計算コストに基づいてGPU間で作業を再配分するため、ナップサック法や空間充填曲線(SFC)といった負荷バランシング戦略を適用する。
- 理論的最大スピードアップを予測する強スケーリングパフォーマンスモデルを用い、観察された改善度と比較する。
- 粒子数、GPUあたりのボックスサイズ、負荷バランシング頻度、コスト関数の選択といったさまざまな設定でパフォーマンスをベンチマークする。
実験結果
リサーチクエスチョン
- RQ1GPUクロックベースのイン・サイト測定とCUPTIベースのタイミングの間で、正確性とパフォーマンスオーバーヘッドの観点から、どちらが優れているか?
- RQ2ヒューリスティック法と実際のカーネルタイミングの両方を用いたコスト割り当て戦略が、WarpXにおける動的負荷バランシング性能に与える影響は?
- RQ3動的負荷バランシングは、GPUアクセcelerated PICシミュレーションにおける強スケーリングおよび弱スケーリング性能をどの程度向上させるか?
- RQ4ナップサック法とSFCの両方を用いた負荷バランシングアルゴリズムの選択が、パフォーマンスおよび負荷バランシング効率に与える影響は?
- RQ5大規模GPUシミュレーションにおいて、理論的最大スピードアップに近づくには、どの程度の負荷不均衡低減が求められるか?
主な発見
- 実際の負荷バランシングオーバーヘッドは、GPUクロックベースのイン・サイト測定ではほとんど無視できるが、CUPTIベースのアプローチは顕著なランタイムコストを伴う。
- Summit上で6144 GPUを用いたレーザーイオン加速テストケースでは、動的負荷バランシングが理論的予測最大スピードアップの62–74%を達成し、6 GPUでは88%の効率を示した。
- ベースラインの負荷バランシングなしのケースに比べ3.8倍のスピードアップが得られ、96 GPUケースでは静的負荷バランシングよりも1.2倍のスピードアップを達成した。
- 強スケーリングに基づくパフォーマンスモデルは、負荷不均衡が主なボトルネックであることを確認し、大規模スケールでの高効率性を達成するには動的負荷バランシングが不可欠であることを示した。
- 大規模シミュレーションにおける分散型で局所的制限のあるGPUメモリの生産的利用の観点から、動的負荷バランシングは事実上必須である。
- 通信コストを負荷バランシングルーチンに組み込むことで、観測された性能と理論的限界との差をさらに縮められると示唆された。
より良い研究を、今すぐ始めましょう
論文設計から論文執筆まで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。