toplogo
Sign In

ステンシル DSL のための分散メモリ並列処理のための共有コンパイルスタック


Core Concepts
ステンシル DSL コンパイラ間で共通のコンパイル基盤を構築することで、ドメイン固有の最適化と HPC の概念を共有し、スケーラブルな高性能実行可能ファイルを生成する。
Abstract
本論文は、ステンシル DSL コンパイラ間で共通のコンパイル基盤を構築する手法を提案している。 まず、ステンシル計算を表現する新しい MLIR ダイアレクト(stencil dialect)を導入する。このダイアレクトは、ステンシル計算の幾何学的な分解パターンを表現するための dmp ダイアレクトと、MPI 通信を表現するための mpi ダイアレクトと連携する。 これらのダイアレクトを用いて、Devito、Open Earth Compiler、PSyclone の3つのステンシル DSL コンパイラのコンパイルフローを統合する。各 DSL は独自のユーザーインターフェースを持ちつつ、共通の最適化基盤を活用できるようになる。 具体的には以下の通り: stencil ダイアレクトを用いて、ステンシル計算の抽象的な表現を共有する dmp ダイアレクトを用いて、ステンシル計算の分散メモリ並列処理を表現する mpi ダイアレクトを用いて、MPI 通信を表現する これらのダイアレクトを用いて、Devito、Open Earth Compiler、PSyclone の3つのステンシル DSL コンパイラのコンパイルフローを統合する 統合されたコンパイルフローにより、共通の最適化基盤を活用し、CPU、GPU、FPGA上で高性能な実行可能ファイルを生成できる
Stats
ステンシル計算の幾何学的な分解パターンを表現するための dmp ダイアレクトを導入した MPI 通信を表現するための mpi ダイアレクトを導入した Devito、Open Earth Compiler、PSyclone の3つのステンシル DSL コンパイラのコンパイルフローを統合した
Quotes
なし

Deeper Inquiries

ステンシル計算以外のドメインにおいても、本手法のようなコンパイル基盤の共有は有効だろうか

本手法のようなコンパイル基盤の共有は、ステンシル計算以外のドメインにおいても非常に有効であると考えられます。共有されたインフラストラクチャを使用することで、異なるDSLやコンパイラ間でのコード共有や最適化の促進が可能となります。特定の問題領域に特化したDSLやコンパイラを使用する際にも、共通の最適化手法やコンパイルフローを活用することで、開発効率やパフォーマンスの向上が期待できます。

本手法では、ステンシル計算の分散メモリ並列処理を表現するのに dmp ダイアレクトを使っているが、他の並列処理モデルを表現するためのダイアレクトを導入することはできないだろうか

dmpダイアレクトは、ステンシル計算の分散メモリ並列処理を表現するためのものですが、他の並列処理モデルを表現するためのダイアレクトを導入することは可能です。新しいダイアレクトを導入することで、異なる並列処理モデルに対応した最適化やコード生成が可能となります。例えば、OpenMPやCUDAなどの並列処理モデルに特化したダイアレクトを導入することで、さまざまな並列処理環境に対応したコンパイル基盤を構築することができます。

本手法では、ステンシル計算の特性を活かしてコンパイル最適化を行っているが、より一般的な計算パターンに対してもこのようなアプローチは適用できるだろうか

本手法で行われているステンシル計算の特性を活かしたコンパイル最適化は、より一般的な計算パターンに対しても適用可能です。共通のDSLやコンパイラ基盤を使用することで、異なる計算パターンに対しても同様の最適化手法やコンパイルフローを適用することができます。例えば、共通のIRや最適化パスを使用して、一般的な数値計算やデータ処理においても効率的なコード生成や実行を実現することが可能です。
0