[論文レビュー] ArborX: A Performance Portable Geometric Search Library
ArborXは、Kokkosを活用してCPUおよびGPU間でのパフォーマンスポータブル性を実現する、高性能コンピューティング(HPC)ワークロード向けに設計されたC++幾何検索ライブラリである。メモリアクセスとスレッド分岐の低減に最適化された、並列性に富んだバウンディングボリュームハイアラルキー(BVH)アルゴリズムを採用することで、マルチコアCPUおよびGPUにおいて、nanoflann や Boost.Geometry.Index といった最先端のライブラリを上回る競争力のあるパフォーマンスを達成している。
Searching for geometric objects that are close in space is a fundamental component of many applications. The performance of search algorithms comes to the forefront as the size of a problem increases both in terms of total object count as well as in the total number of search queries performed. Scientific applications requiring modern leadership-class supercomputers also pose an additional requirement of performance portability, i.e. being able to efficiently utilize a variety of hardware architectures. In this paper, we introduce a new open-source C++ search library, ArborX, which we have designed for modern supercomputing architectures. We examine scalable search algorithms with a focus on performance, including a highly efficient parallel bounding volume hierarchy implementation, and propose a flexible interface making it easy to integrate with existing applications. We demonstrate the performance portability of ArborX on multi-core CPUs and GPUs, and compare it to the state-of-the-art libraries such as Boost.Geometry.Index and nanoflann.
研究の動機と目的
- 現代のHPCアーキテクチャ、特にCPUおよびGPUを対象としたパフォーマンスポータブルな幾何検索ライブラリの不足に対処すること。
- エクサスケールのパフォーマンスとポータビリティを必要とする科学的アプリケーションにおける、効率的でスケーラブルな近接検索を可能にすること。
- 既存のHPCアプリケーションへの統合を容易にするために、柔軟なインターフェースを備えたヘッダーファイルオンリーのC++ライブラリを設計すること。
- 並列実装におけるメモリアクセスとスレッド分岐の最小化によって、多様なハードウェア上で高いパフォーマンスを達成すること。
- APU やFPGA などの進化するアーキテクチャをカバーするため、将来のエクサスケールシステムへの対応を可能にすること。
提案手法
- Kokkosのパフォーマンスポータビリティレイヤーを用いて、CPUおよびGPUをターゲットとする並列バウンディングボリュームハイアラルキー(BVH)データ構造を実装する。
- メモリ効率の良いノードレイアウトを用いて、並列な木の走査および構築におけるメモリアクセスパターンの最適化とスレッド分岐の低減を図る。
- CPUおよびGPU実行を最小限のコード重複でサポートするため、単一のインターフェース抽象化を採用する。
- Kokkosの実行ポリシーとメモリスペースを活用して、異種アーキテクチャ間でポータブルなカーネルを表現する。
- 統合の簡素化とコンパイラ最適化の促進のため、ライブラリをヘッダーファイルオンリーとして設計する。
- パフォーマンスを最優先するために、静的データ構造を用い、インクリメンタルな更新を回避する。
実験結果
リサーチクエスチョン
- RQ1どのようにして幾何検索ライブラリが、マルチコアCPUおよびGPUを含む多様なHPCアーキテクチャにおいて、高いパフォーマンスとポータビリティを達成できるか?
- RQ2データ構造およびアルゴリズムの実装におけるどのような設計選択が、幾何検索における効率的な並列処理とメモリアクセスパターンを可能にするか?
- RQ3最新のスーパーコンピュータ上で、ArborXはnanoflann や Boost.Geometry.Index といった既存のライブラリと比べてどの程度のパフォーマンスを示すか?
- RQ4単一のインターフェースと実装によって、CPUおよびGPUの両方で競争力のあるパフォーマンスを達成できる範囲はどの程度か?
- RQ5現在の実装におけるスケーラビリティの限界は何か?エクサスケール規模の分散ワークロードに対応するにはどのように対処すべきか?
主な発見
- ArborXは、単一スレッドCPUワークロードにおいても、特に最近傍探索および空間検索操作において、nanoflann や Boost.Geometry.Index と同等のパフォーマンスを達成している。
- OLCFのSummitシステムにおいて、1つのV100 GPUは、42個のPOWER9 CPUコアを備えたノードを上回る性能を、より大きな問題サイズに対して示しており、アクセラレータの強力な拡張性を実証している。
- SMT4モードのPOWER9 CPUは、ほとんどの問題サイズ、特に大きなワークロードにおいて、SMT1 や SMT2 よりも優れたパフォーマンスを示している。
- CUDAを用いたGPU実行では顕著なスループット向上が得られており、大規模データセットにおいて空間検索で最大5.5倍、最近傍探索クエリで最大6.44倍のCPUパフォーマンスを上回っている。
- ArborXにおけるBVHベースの実装は、メモリアクセスとスレッド分岐を低減しており、CPUおよびGPUの両方で高い効率性を発揮している。
- ライブラリは拡張性に優れており、MPIベースの分散検索による将来のスケーリングに適しているが、現在のところノード間の負荷分散およびデータ分布の不均衡が課題として残っている。
より良い研究を、今すぐ始めましょう
論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。