Skip to main content
QUICK REVIEW

[論文レビュー] Stateful Dataflow Multigraphs: A Data-Centric Model for Performance Portability on Heterogeneous Architectures

Tal Ben‐Nun, Johannes de Fine Licht|arXiv (Cornell University)|Feb 27, 2019
Parallel Computing and Optimization Techniques参考文献 53被引用数 5
ひとこと要約

この論文では、科学的コードを低レベル最適化から分離することで、CPU、GPU、FPGAを含む異種アーキテクチャ間でのパフォーマンスポータビリティを実現する、データ中心の中間表現であるStateful DataFlow Multigraphs (SDFGs) を導入する。SDFGsに拡張可能なグラフリライトとパターンベース変換を適用することで、元のドメイン科学者が記述したコードを変更せずに、異種アーキテクチャ上でニアピーク性能を達成できる。

ABSTRACT

The ubiquity of accelerators in high-performance computing has driven programming complexity beyond the skill-set of the average domain scientist. To maintain performance portability in the future, it is imperative to decouple architecture-specific programming paradigms from the underlying scientific computations. We present the Stateful DataFlow multiGraph (SDFG), a data-centric intermediate representation that enables separating program definition from its optimization. By combining fine-grained data dependencies with high-level control-flow, SDFGs are both expressive and amenable to program transformations, such as tiling and double-buffering. These transformations are applied to the SDFG in an interactive process, using extensible pattern matching, graph rewriting, and a graphical user interface. We demonstrate SDFGs on CPUs, GPUs, and FPGAs over various motifs --- from fundamental computational kernels to graph analytics. We show that SDFGs deliver competitive performance, allowing domain scientists to develop applications naturally and port them to approach peak hardware performance without modifying the original scientific code.

研究の動機と目的

  • GPU や FPGA を含む、異種HPCアーキテクチャ向けにパフォーマンス良く、ポータブルなコードを書くことの増大する複雑さに対処すること。
  • ドメイン科学者のハイレベルコードと低レベルのパフォーマンス最適化を分離することで、保守性と生産性を向上させること。
  • パフォーマンスエンジニアが、元の科学的論理を変更せずに構造的かつ拡張可能な変換インターフェースを通じてコード最適化を実施できるようにすること。
  • プログラムの意味と最適化を統一的かつ拡張可能な中間表現として表現することで、高いパフォーマンスポータビリティを達成すること。
  • パターンマッチングとデータフローに基づくモデルにおけるグラフリライトを用いた、自動的およびインタラクティブなコード変換の支援。

提案手法

  • 計算ノードとデータ移動エッジを持つ有向グラフとして、科学的コードをStateful DataFlow Multigraph (SDFG) として表現し、細粒度のデータ依存関係を捉える。
  • 2役モデルを採用する:ドメイン科学者が制限付きPython/MATLABなどのハイレベル言語でコードを記述し、パフォーマンスエンジニアがSDFGの変換を通じて最適化を実施する。
  • タイリング、ダブルバッファリング、ループ結合などのプログラム変換を、拡張可能なパターンマッチングとグラフリライト規則を用いて適用する。
  • SDFG表現に対する変換のインタラクティブな探索と適用を可能にするグラフィカルユーザーインターフェースを統合する。
  • 最適化されたSDFGを、CUDA、OpenMP、OpenCLなどのターゲット固有のコードにコンパイルするが、データフローの意味論とパフォーマンス特性を保持する。
  • SDFGの多段階抽象化を活用して、レジスタからノード間通信までの中間データ移動を分析し、通信を回避する最適化を可能にする。

実験結果

リサーチクエスチョン

  • RQ1データ中心の中間表現は、CPU、GPU、FPGAを含む多様な異種アーキテクチャ間でのパフォーマンスポータビリティを実現できるか?
  • RQ2パフォーマンスエンジニアは、元の科学的コードを変更せずにSDFG上の変換によってコードをどの程度最適化できるか?
  • RQ3SDFGモデルは、メモリ階層やアクセcelレータをまたがる複雑なデータ移動パターンの表現と最適化にどの程度有効か?
  • RQ4複数のプラットフォームでニアピークパフォーマンスを達成する中で、ドメイン科学者とパフォーマンスエンジニアの責任分担を維持できるか?
  • RQ5SDFGの変換の拡張性は、新しい最適化パターンやハードウェアターゲットをサポートする観点で、既存のモデルと比較してどの程度優れているか?

主な発見

  • SDFGsは、科学的論理とパフォーマンスチューニングを成功裏に分離し、ドメイン科学者がパフォーマンスやポータビリティのトレードオフを気にせずにハイレベル言語でコードを記述できるようにした。
  • SDFGモデルにより、同じ入力コードをCPU、GPU、FPGAでコンパイルすることでニアピークパフォーマンスを達成するパフォーマンスポータビリティが実現された。
  • SDFGsにおけるグラフリライトとパターンベース変換は、メモリ帯域幅とレイテンシの低減に不可欠なタイリングやダブルバッファリングといった複雑な最適化をサポートした。
  • 拡張可能な変換システムと組み合わせることで、高レベルの抽象化が低レベル最適化と同等のパフォーマンスを達成できることを示した。
  • ドメイン科学者とパフォーマンスエンジニアの責任分担が維持され、パフォーマンスエンジニアはドメイン固有の数学的知識を理解せずにSDFG変換によりコードチューニングが可能だった。
  • SDFGモデルは、Halide、Legion、多面体モデルといった既存のモデルを一般化・拡張し、任意のデータ移動パターンと異種ターゲットにおける多段階最適化をサポートした。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。