ParaGraph: Weighted Graph Representation for Performance Optimization of HPC Kernels

要約

【タイトル】ParaGraph:HPCカーネルのパフォーマンス最適化のための重み付きグラフ表現

【要約】
– GPUベースのHPCクラスターは、広範な並列性とエネルギー効率性により、より多くの科学的アプリケーション開発者を惹きつけている。
– 多様なマルチ/マニーコアアーキテクチャ間での移植性を実現するために、アプリケーション開発者の人気のある選択肢は、OpenMPなどの指令ベースの並列プログラミングモデルを利用することである。
– しかし、OpenMPでも、開発者はGPUやCPUを利用するための多くの戦略から選択する必要がある。
– 最近、機械学習(ML)の手法がHPCアプリケーションの最適化において重要な進展をもたらしている。
– このため、MLモデルのためにアプリケーションの特性を表現するためにいくつかの方法が提案されてきた。
– しかし、利用可能な技術は、並列性を明らかにする上で重要な特徴を捉えることができない。
– この論文では、パラレルアプリケーションのための新しいグラフベースのプログラム表現を紹介する。
– 新しいエッジの追加により、ASTの暗黙の順序や親子関係を活用し、またループや条件情報を考慮した重み付けエッジの導入が行われる。
– GNNをトレーニングして、CPUとGPU上のOpenMPコードリージョンのランタイムを予測するために、さまざまな変換を組み合わせてデータセットを構築する。
– 予測されたモデルのランタイムは、最良のパフォーマンスを提供する変換を決定するために使用される。
– 結果は、提案手法が効果的であり、ランタイム予測において正規化RMSEが0.004から最大で0.01に低下することを示している。

要約(オリジナル)

GPU-based HPC clusters are attracting more scientific application developers due to their extensive parallelism and energy efficiency. In order to achieve portability among a variety of multi/many core architectures, a popular choice for an application developer is to utilize directive-based parallel programming models, such as OpenMP. However, even with OpenMP, the developer must choose from among many strategies for exploiting a GPU or a CPU. Recently, Machine Learning (ML) approaches have brought significant advances in the optimizations of HPC applications. To this end, several ways have been proposed to represent application characteristics for ML models. However, the available techniques fail to capture features that are crucial for exposing parallelism. In this paper, we introduce a new graph-based program representation for parallel applications that extends the Abstract Syntax Tree to represent control and data flow information. The originality of this work lies in the addition of new edges exploiting the implicit ordering and parent-child relationships in ASTs, as well as the introduction of edge weights to account for loop and condition information. We evaluate our proposed representation by training a Graph Neural Network (GNN) to predict the runtime of an OpenMP code region across CPUs and GPUs. Various transformations utilizing collapse and data transfer between the CPU and GPU are used to construct the dataset. The predicted runtime of the model is used to determine which transformation provides the best performance. Results show that our approach is indeed effective and has normalized RMSE as low as 0.004 to at most 0.01 in its runtime predictions.

arxiv情報

著者 Ali TehraniJamsaz,Alok Mishra,Akash Dutta,Abid M. Malik,Barbara Chapman,Ali Jannesari
発行日 2023-04-07 05:52:59+00:00
arxivサイト arxiv_id(pdf)

提供元, 利用サービス

arxiv.jp, OpenAI

カテゴリー: cs.DC, cs.LG, cs.PF パーマリンク