NPS: A Framework for Accurate Program Sampling Using Graph Neural Network
Not on the map. Why?
Abstract (arXiv)
With the end of Moore's Law, there is a growing demand for rapid architectural innovations in modern processors, such as RISC-V custom extensions, to continue performance scaling. Program sampling is a crucial step in microprocessor design, as it selects representative simulation points for workload simulation. While SimPoint has been the de-facto approach for decades, its limited expressiveness with Basic Block Vector (BBV) requires time-consuming human tuning, often taking months, which impedes fast innovation and agile hardware development. This paper introduces Neural Program Sampling (NPS), a novel framework that learns execution embeddings using dynamic snapshots of a Graph Neural Network. NPS deploys AssemblyNet for embedding generation, leveraging an application's code structures and runtime states. AssemblyNet serves as NPS's graph model and neural architecture, capturing a program's behavior in aspects such as data computation, code path, and data flow. AssemblyNet is trained with a data prefetch task that predicts consecutive memory addresses. In the experiments, NPS outperforms SimPoint by up to 63%, reducing the average error by 38%. Additionally, NPS demonstrates strong robustness with increased accuracy, reducing the expensive accuracy tuning overhead. Furthermore, NPS shows higher accuracy and generality than the state-of-the-art GNN approach in code behavior learning, enabling the generation of high-quality execution embeddings.
Key facts. No citing papers in the map yet (data through 14 Oct 2026). Builds on 20 of its 64 references that are in the map. First posted on arXiv 18 Apr 2023.
Builds on
20 of 64 references.
References · 20
- 2017Attention Is All You Needcited by 60,361
- 2014Adam: A Method for Stochastic Optimizationcited by 37,240
- 2016Semi-Supervised Classification with Graph Convolutional Networkscited by 11,361
- 2017Graph Attention Networkscited by 8,923
- 2017Inductive Representation Learning on Large Graphscited by 6,320
- 2015Gated Graph Sequence Neural Networkscited by 796
- 2018Hierarchical Graph Representation Learning with Differentiable Poolingcited by 787
- 2018code2vec: Learning Distributed Representations of Codecited by 250
- 2017Learning to Represent Programs with Graphscited by 220
- 2018Neural Arithmetic Logic Unitscited by 70
- 2016Mean Absolute Percentage Error for regression modelscited by 58
- 2020LambdaNet: Probabilistic Type Inference using Graph Neural Networkscited by 44
8 more
- 2019NeuroVectorizer: End-to-End Vectorization with Deep Reinforcement Learningcited by 37
- 2019Encoding Musical Style with Transformer Autoencoderscited by 35
- 2020Learning to Execute Programs with Instruction Pointer Attention Graph Neural Networkscited by 35
- 2018Learning Memory Access Patternscited by 28
- 2020DiffTune: Optimizing CPU Simulator Parameters with Learned Differentiable Surrogatescited by 14
- 2019Learning Execution through Neural Code Fusioncited by 13
- 2019GDP: Generalized Device Placement for Dataflow Graphscited by 10
- 2020Node Masking: Making Graph Neural Networks Generalize and Scale Bettercited by 7
Built on by
Not cited yet.