LEARNING EXECUTION THROUGH NEURAL CODE FUSION
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 static representations of source code, these representations do not understand how code executes at runtime. In this work, we propose a new approach using 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 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 new tasks that would not be feasible from static code alone. As an illustration of this, we apply the new model to challenging dynamic tasks (branch prediction and prefetching) from the SPEC CPU benchmark suite, outperforming the state-of-the-art by 26% and 45% respectively. Moreover, we use the learned fused graph embeddings to demonstrate transfer learning with high performance on an indirectly related algorithm classification task.
This paper presents a novel improvement in methodology for learning code execution (at the level of branch-predictions and prefetching). They combine static program description with dynamic program state into one graph neural network, for the first time, to achieve significant performance gains on standard benchmarks. I would vote to accept this paper. They appear to have developed a new model structure and interface to the program information (i.e. inputs to the model), and the design decisions appear thoughtful, sensible, and well-justified (e.g. use of assembly code). The presentation is mostly clear, with a good balance of background material, method description, and experiment results. Taken at face value, the results are impressive, although I am not familiar enough with this field to assess the fairness of comparison against the baselines. For example, it*s a little unclear what the difference is vs previous baselines just from switching to source-code-as-input to assembly-code-as-input? The study on memory representations (categorical vs scalar vs binary) is a helpful component which adds its own value, and the context for popularity of the alternatives is described. Few details as to implementation are discussed, although the code is included in the submission, and after a quick glance appears substantial.
You are a member of the scientific community tasked with peer review. Review the following paper title and abstract.
### Title + Abstract
LEARNING EXECUTION THROUGH NEURAL CODE FUSION
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 static representations of source code, these representations do not understand how code executes at runtime. In this work, we propose a new approach using 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 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 new tasks that would not be feasible from static code alone. As an illustration of this, we apply the new model to challenging dynamic tasks (branch prediction and prefetching) from the SPEC CPU benchmark suite, outperforming the state-of-the-art by 26% and 45% respectively. Moreover, we use the learned fused graph embeddings to demonstrate transfer learning with high performance on an indirectly related algorithm classification task.
user
<think>Okay, to do a decent peer review, I should start with summarizing what the work is about. This includes novelty, contributions, clarity, and impact. I might include suggestions to issues that I find critical to the usefulness of the work. Starting with novelty, there are different types of novelty. The first aspect of novelty is scope and scale. Is the work covering a broader perspective than previous works? The second aspect is methodology. Is the proposed methodology novel compared to previous methods? Do they provide any significant advantage over previous methodologies? The third aspect is results. Are the results different compared previous work? Does this lead to any novel theories or an extension of current theories? Next is clarity, I will be reading the work in depth and analyze if any sentences can be potentially ambiguous or misleading. If any sentences are ambiguous, I will state them and give a suggestion on how to rephrase such sentence or how to make more clear to the audience. Lastly, impact is important. I will attempt to predict how such work will impact the scientific community. This might include the applications of such work and how the work might transform the way we study a certain topic. Finally, I will might only mention issues that are critical. This is to keep the review as concise and helpful as possible.</think>



This paper presents a novel improvement in methodology for learning code execution (at the level of branch-predictions and prefetching). They combine static program description with dynamic program state into one graph neural network, for the first time, to achieve significant performance gains on standard benchmarks. I would vote to accept this paper. They appear to have developed a new model structure and interface to the program information (i.e. inputs to the model), and the design decisions appear thoughtful, sensible, and well-justified (e.g. use of assembly code). The presentation is mostly clear, with a good balance of background material, method description, and experiment results. Taken at face value, the results are impressive, although I am not familiar enough with this field to assess the fairness of comparison against the baselines. For example, it*s a little unclear what the difference is vs previous baselines just from switching to source-code-as-input to assembly-code-as-input? The study on memory representations (categorical vs scalar vs binary) is a helpful component which adds its own value, and the context for popularity of the alternatives is described. Few details as to implementation are discussed, although the code is included in the submission, and after a quick glance appears substantial.
assistant
This paper presents a novel improvement in methodology for learning code execution (at the level of branch-predictions and prefetching). They combine static program description with dynamic program state into one graph neural network, for the first time, to achieve significant performance gains on standard benchmarks. I would vote to accept this paper. They appear to have developed a new model structure and interface to the program information (i.e. inputs to the model), and the design decisions appear thoughtful, sensible, and well-justified (e.g. use of assembly code). The presentation is mostly clear, with a good balance of background material, method description, and experiment results. Taken at face value, the results are impressive, although I am not familiar enough with this field to assess the fairness of comparison against the baselines. For example, it*s a little unclear what the difference is vs previous baselines just from switching to source-code-as-input to assembly-code-as-input? The study on memory representations (categorical vs scalar vs binary) is a helpful component which adds its own value, and the context for popularity of the alternatives is described. Few details as to implementation are discussed, although the code is included in the submission, and after a quick glance appears substantial.