[論文レビュー] ProGraML: Graph-based Deep Learning for Program Optimization and Analysis
ProGraMLは、コンパイラの中間表現(IR)から導出されたグラフベースのプログラム表現を導入し、制御、データ、コール依存関係を有向付加マルチグラフとして捉える。この構造上でメッセージ伝達ニューラルネットワーク(MPNN)を適用することで、コアコンパイラ解析タスクで94.0のF1スコアを達成し、性能がSOTAに達する。また、異種デバイスマッピングやプログラム分類タスクにおいても、先行手法を上回る性能を示した。
The increasing complexity of computing systems places a tremendous burden on optimizing compilers, requiring ever more accurate and aggressive optimizations. Machine learning offers significant benefits for constructing optimization heuristics but there remains a gap between what state-of-the-art methods achieve and the performance of an optimal heuristic. Closing this gap requires improvements in two key areas: a representation that accurately captures the semantics of programs, and a model architecture with sufficient expressiveness to reason about this representation. We introduce ProGraML - Program Graphs for Machine Learning - a novel graph-based program representation using a low level, language agnostic, and portable format; and machine learning models capable of performing complex downstream tasks over these graphs. The ProGraML representation is a directed attributed multigraph that captures control, data, and call relations, and summarizes instruction and operand types and ordering. Message Passing Neural Networks propagate information through this structured representation, enabling whole-program or per-vertex classification tasks. ProGraML provides a general-purpose program representation that equips learnable models to perform the types of program analysis that are fundamental to optimization. To this end, we evaluate the performance of our approach first on a suite of traditional compiler analysis tasks: control flow reachability, dominator trees, data dependencies, variable liveness, and common subexpression detection. On a benchmark dataset of 250k LLVM-IR files covering six source programming languages, ProGraML achieves an average 94.0 F1 score, significantly outperforming the state-of-the-art approaches. We then apply our approach to two high-level tasks - heterogeneous device mapping and program classification - setting new state-of-the-art performance in both.
研究の動機と目的
- プログラム解析の機械学習における、逐次的かつ特徴の選択に依存する表現の限界を解消する。
- 表現の忠実性とモデルの表現力の向上により、機械学習ベースのヒューリスティクスと最適なコンパイラ最適化の間の性能ギャップを埋める。
- コンパイラに依存せず、言語に依存しないプログラム表現を構築し、ディープラーニングモデルが豊富な意味的構造を捉えられるようにする。
- グラフニューラルネットワークを用いて、ライブネス、支配木、共通部分式の検出といった複雑なプログラム解析をエンドツーエンドで学習可能にする。
- 異種デバイスマッピングやプログラム分類といった高レベルなタスクにおいて、アプローチの汎用性を実証し、新たなSOTAの結果を達成する。
提案手法
- LLVMおよびXLAのIRから、命令間の制御、データ、コール依存関係を表現する有向付加マルチグラフとしてProGraMLを構築する。
- オペコード、データ型、修飾子、順序など、豊富な特徴を用いて各命令およびオペランドを表現し、意味情報を保持する。
- メッセージ伝達ニューラルネットワーク(MPNN)を適用し、グラフ全体を traverse して潜在表現を伝播させ、命令および変数の分類を可能にする。
- 全プログラムグラフ上でエンドツーエンドにモデルを学習し、制御フローレイアビリティ、データ依存関係検出、ライブネス解析などの下流タスクを実行する。
- 低レベルのIRと高レベルなプログラム理解タスクの両方をサポートする統一されたグラフ表現を採用し、ドメイン間での転移学習を可能にする。
- ProGraMLと従来のコンパイラIRとの構造的類似性を活用し、既存のコンパイルパイプラインやツールとの互換性を確保する。
実験結果
リサーチクエスチョン
- RQ1コンパイラIRから導出されたグラフベースのプログラム表現は、逐次的または特徴選択に依存する表現よりも、プログラムの意味を学習する際に優れているか?
- RQ2手動で設計されたヒューリスティクスなしで、メッセージ伝達ニューラルネットワークが支配木やライブネス解析といった古典的コンパイラ解析をどの程度正確に近似できるか?
- RQ3ProGraMLは、CDFG や IR2Vec といった既存のグラフベース表現と比較して、プログラム動作のモデリングにおいてどの程度表現力に優れているか?
- RQ4ProGraMLは、異種デバイスマッピング や プログラム分類 といった高レベルな最適化タスクに一般化可能で、SOTAの性能を達成できるか?
- RQ5実世界のコンパイラワークロードにおいて、ProGraMLは先行手法と比較してスケーラビリティと推論効率に優れているか?
主な発見
- ProGraMLは、6つのプログラミング言語を含む25万件のLLVM-IRファイルを含むベンチマークで94.0のF1スコアを達成し、従来のコンパイラ解析タスクにおいて、SOTA手法を著しく上回った。
- 従来の手法がオペランドの意味的表現が不十分であるために失敗する変数のライブネスや共通部分式検出において、本モデルは優れた性能を示した。
- 異種デバイスマッピングにおいても、新たなSOTAを樹立した。グラフベースの学習が、データローカリティや実行ターゲットに関する効果的な推論が可能であることを示した。
- 同等のCDFGベース手法と比較して、推論スループットが76.6倍向上した。計算複雑度は類似しているものの、実用的なスケーラビリティに優れていることが示唆された。
- グラフ表現により、大規模なコードベースにおける長距離依存関係や意味的関係を正確にモデル化でき、逐次モデルの限界を克服した。
- 本フレームワークは、多様なプログラミング言語や最適化タスクにわたり良好に一般化しており、特定のコンパイラパスに限定されない広範な適用可能性を示している。
より良い研究を、今すぐ始めましょう
論文設計から論文執筆まで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。