[論文レビュー] Improving Locality of Unstructured Mesh Algorithms on GPUs
本稿では、共有メモリと二段階色分け法を活用して、GPU上の非構造格子アルゴリズムにおけるデータ局所性を向上させる、ライブラリベースの最適化手法を提案する。アルゴリズムの変更なしに、透明にカーネルの処理順序とデータアクセスを再配置することで、Airfoil や miniAero などのアプリケーションからの科学的カーネルにおいて、Pascal および Volta GPU で 1.2× から 2.5× の高速化を達成した。
To most efficiently utilize modern parallel architectures, the memory access patterns of algorithms must make heavy use of the cache architecture: successively accessed data must be close in memory (spatial locality) and one piece of data must be reused as many times as possible (temporal locality). In this work we analyse the performance of unstructured mesh algorithms on GPUs, specifically the use of the shared memory and two-layered colouring to cache the data. We also look at different block layouts to analyse the trade-off between data reuse and the amount of synchronisation. We developed a standalone library that can transparently reorder the operations done and data accessed by a kernel, without modifications to the algorithm by the user. Using this, we performed measurements on relevant scientific kernels from different applications, such as Airfoil, Volna, Bookleaf, Lulesh and miniAero; using Nvidia Pascal and Volta GPUs. We observed significant speedups ($1.2 ext{--}2.5 imes$).
研究の動機と目的
- 現代の GPU で実行される非構造格子アルゴリズムにおけるデータ局所性を向上させること。
- 共有メモリと色分け戦略を用いて空間的および時間的局所性を向上させることで、グローバルメモリアクセスを削減すること。
- ユーザーのカーネルに変更を加えずに、処理順序とデータアクセスを再配置する透明なライブラリを開発すること。
- 異なるブロックレイアウトにおけるデータ再利用と同期オーバーヘッドのトレードオフを評価すること。
- 多様なアプリケーションからの実世界の科学的カーネルにおける最適化の有効性を測定すること。
提案手法
- 二段階色分け法を用いてデータアクセスをグループ化し、共有メモリにおける再利用を向上させる。
- 独立したライブラリを用いて、透明にカーネル処理順序とデータアクセスパターンを自動的に再配置する。
- GPU の共有メモリを活用して頻繁にアクセスされるデータをキャッシュし、グローバルメモリのトラフィックを削減する。
- データ再利用と同期コストのバランスを取るために、異なるブロックレイアウトを評価する。
- Airfoil、Volna、Bookleaf、Lulesh、miniAero などの科学的アプリケーションからのカーネルに最適化を適用する。
- Nvidia Pascal および Volta GPU を用いて、代表的な科学的ワークロードを用いて性能を測定する。
実験結果
リサーチクエスチョン
- RQ1二段階色分け法は、GPU 上の非構造格子カーネルにおけるデータ局所性をどのように向上させるか?
- RQ2非構造格子アルゴリズムにおいて、共有メモリを用いてデータをキャッシュすることの性能への影響は何か?
- RQ3異なるブロックレイアウトは、データ再利用と同期オーバーヘッドのトレードオフにどのように影響するか?
- RQ4透明なライブラリは、元のカーネルコードを変更せずに、どの程度データアクセスパターンを最適化できるか?
- RQ5これらの局所性最適化手法を用いることで、実際の科学的カーネルでどの程度の性能向上が達成できるか?
主な発見
- 提案された最適化により、Nvidia Pascal および Volta GPU で 1.2× から 2.5× の高速化が達成された。
- 共有メモリと二段階色分け法の活用により、データ再利用が顕著に向上し、グローバルメモリアクセスが削減された。
- ライブラリは、元のアルゴリズムに変更を加えずに、データアクセスとカーネル処理順序を効果的に再編成した。
- 異なるブロックレイアウトの評価から、同期コストとデータ再利用効率の間には明確なトレードオフが確認された。
- Airfoil、Volna、Bookleaf、Lulesh、miniAero などの多様な科学的カーネルにおいて、一貫した性能向上が示された。
- 結果から、不規則なメモリアクセスパターンを示す複雑な非構造格子ワークロードにおいても、局所性最適化が有効であることが確認された。
より良い研究を、今すぐ始めましょう
論文設計から論文執筆まで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。