ProGraML: Graph-based Deep Learning for Program Optimization and Analysis
Chris Cummins, Zacharias V. Fisches, Tal Ben-Nun, Torsten Hoefler,, Hugh Leather

TL;DR
ProGraML introduces a graph-based program representation and neural network models that significantly improve program analysis and optimization tasks across multiple programming languages.
Contribution
It presents a novel, language-agnostic graph representation for programs and demonstrates its effectiveness in various analysis and optimization tasks.
Findings
Achieves 94% F1 score on traditional compiler analysis tasks.
Sets new state-of-the-art in device mapping and program classification.
Outperforms existing methods across multiple programming languages.
Abstract
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…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Engineering Research · Software System Performance and Reliability · Software Testing and Debugging Techniques
