Learning Execution through Neural Code Fusion
Zhan Shi, Kevin Swersky, Daniel Tarlow, Parthasarathy Ranganathan,, Milad Hashemi

TL;DR
This paper introduces a multi-task GNN approach that fuses static code and dynamic execution data to better understand and optimize program performance, achieving significant improvements in dynamic tasks and transfer learning.
Contribution
It presents a novel GNN model that combines static source code and dynamic execution states, enabling new applications and outperforming existing methods.
Findings
Outperforms state-of-the-art in branch prediction and prefetching by 26% and 45%.
Enables transfer learning for algorithm classification with high accuracy.
Demonstrates the effectiveness of fused representations in dynamic code analysis.
Abstract
As the performance of computer systems stagnates due to the end of Moore's Law, there is a need for new models that can understand and optimize the execution of general purpose code. While there is a growing body of work on using Graph Neural Networks (GNNs) to learn representations of source code, these representations do not understand how code dynamically executes. In this work, we propose a new approach to use GNNs to learn fused representations of general source code and its execution. Our approach defines a multi-task GNN over low-level representations of source code and program state (i.e., assembly code and dynamic memory states), converting complex source code constructs and complex data structures into a simpler, more uniform format. We show that this leads to improved performance over similar methods that do not use execution and it opens the door to applying GNN models to…
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.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Engineering Research · Parallel Computing and Optimization Techniques · Software Testing and Debugging Techniques
