[論文レビュー] Polly's Polyhedral Scheduling in the Presence of Reductions
この論文は、LLVMのPolly最適化ツールに統合された還元に配慮した多面体スケジューリングフレームワークを提示し、結合的および可換な還元の検出と最適化を可能にすることで並列性を活用する。還元をプライベート化によってモデル化し、結合性および可換性を用いてメモリ依存関係を緩和することで、多変数ループネストにおける還元の効果的なスケジューリングが実現され、BiCGベンチマークで最大2.21倍の高速化を達成した。
The polyhedral model provides a powerful mathematical abstraction to enable effective optimization of loop nests with respect to a given optimization goal, e.g., exploiting parallelism. Unexploited reduction properties are a frequent reason for polyhedral optimizers to assume parallelism prohibiting dependences. To our knowledge, no polyhedral loop optimizer available in any production compiler provides support for reductions. In this paper, we show that leveraging the parallelism of reductions can lead to a significant performance increase. We give a precise, dependence based, definition of reductions and discuss ways to extend polyhedral optimization to exploit the associativity and commutativity of reduction computations. We have implemented a reduction-enabled scheduling approach in the Polly polyhedral optimizer and evaluate it on the standard Polybench 3.2 benchmark suite. We were able to detect and model all 52 arithmetic reductions and achieve speedups up to 2.21$ imes$ on a quad core machine by exploiting the multidimensional reduction in the BiCG benchmark.
研究の動機と目的
- 生産的多面体最適化ツールに還元サポートが欠如している問題に対処し、ループに依存関係を伴うことが並列性を妨げる要因となること。
- 結合性および可換性の性質を活用して、多面体最適化ツールが還元を検出し、活用できるようにすること。
- 還元のモデル化とその並列化を、依存関係に基づく整合的なメカニズムで多面体モデルに拡張すること。
- SARE形式への事前処理を必要としない形で、還元に配慮したスケジューリングをPolly最適化ツールに統合すること。
- 実世界のベンチマークにおける還元に配慮した最適化の性能への影響を評価すること。
提案手法
- 既存の依存解析を用いて、メモリ依存関係および値ベースの依存関係情報を用いて還元を検出する依存関係に基づくアルゴリズムを提案する。
- 還元演算の結合性および可換性を活用して、メモリ依存関係を緩和するモデルを導入する。
- 還元のベクトル化および並列化を可能にするために、固定化技術としてプライベート化を採用し、各ベクトルレーンまたはスレッドごとに一時配列を導入する。
- 還元ステートメントの最初と最後のインスタンスの間で還元先へのアクセスが発生しないようにすることで、還元の整合性を保つスケジューリングフレームワークを設計する。
- LLVMコンパイラーインfraストラクチャ内に統合されたPolly多面体最適化ツールに、このアプローチを統合する。
- 三段階のアプローチ(還元検出、依存関係の緩和、変換スケジューリング)を採用し、すべてを多面体モデル内に統合する。
実験結果
リサーチクエスチョン
- RQ1既存の依存解析を用いて、多面体モデル内で還元を信頼性高く検出する方法は何か?
- RQ2還元によって引き起こされるメモリ依存関係を、正しさを保ちつつ、整合的かつ実用的な方法で緩和するにはどうすればよいか?
- RQ3多面体スケジューリングにプライベート化を統合することで、還元のベクトル化および並列化をどのように実現できるか?
- RQ4実世界のベンチマークにおいて還元の並列性を活用することで、どの程度の性能向上が達成できるか?
- RQ5還元に配慮したスケジューリングは、還元サポートが欠如した従来の多面体最適化と比較して、どのように異なるか?
主な発見
- 提案された還元検出アルゴリズムは、PolyBench 3.2ベンチマークスイートに含まれる全52件の算術的還元を正常に同定した。
- Pollyへの還元に配慮したスケジューリングの統合により、BiCGベンチマークに見られるような多次元還元の検出と最適化が可能になった。
- 四コアマシン上で、BiCGベンチマークにおける還元に配慮したスケジューリングにより、最大2.21倍の高速化が達成された。
- SARE形式への事前処理を必要とせず、還元のベクトル化および並列化をサポートするため、最適化の柔軟性が向上した。
- プライベート化のオーバーヘッドは管理可能であり、実行環境が最適化戦略と一致する場合には、顕著な性能向上が得られた。
- フレームワークは、還元に配慮したスケジューリングをコアスケジューリングプロセスに統合する必要があることを示した。
より良い研究を、今すぐ始めましょう
論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。