Turaco: Complexity-Guided Data Sampling for Training Neural Surrogates of Programs

09/21/2023
by   Alex Renda, et al.
0

Programmers and researchers are increasingly developing surrogates of programs, models of a subset of the observable behavior of a given program, to solve a variety of software development challenges. Programmers train surrogates from measurements of the behavior of a program on a dataset of input examples. A key challenge of surrogate construction is determining what training data to use to train a surrogate of a given program. We present a methodology for sampling datasets to train neural-network-based surrogates of programs. We first characterize the proportion of data to sample from each region of a program's input space (corresponding to different execution paths of the program) based on the complexity of learning a surrogate of the corresponding execution path. We next provide a program analysis to determine the complexity of different paths in a program. We evaluate these results on a range of real-world programs, demonstrating that complexity-guided sampling results in empirical improvements in accuracy.

READ FULL TEXT

page 4

page 20

page 22

research
12/12/2021

Programming with Neural Surrogates of Programs

Surrogates, models that mimic the behavior of programs, form the basis o...
research
09/19/2018

Control Flow Graph Modifications for Improved RF-Based Processor Tracking Performance

Many dedicated embedded processors do not have memory or computational r...
research
12/31/2020

Extracting Clean Performance Models from Tainted Programs

Performance models are well-known instruments to understand the scaling ...
research
07/18/2019

Responsibility Analysis by Abstract Interpretation

Given a behavior of interest in the program, statically determining the ...
research
08/02/2018

Regulating Access to System Sensors in Cooperating Programs

Modern operating systems such as Android, iOS, Windows Phone, and Chrome...
research
09/04/2017

Reversing Imperative Parallel Programs

We propose an approach and a subsequent extension for reversing imperati...
research
11/03/2017

SPARK: Static Program Analysis Reasoning and Retrieving Knowledge

Program analysis is a technique to reason about programs without executi...

Please sign up or login with your details

Forgot password? Click here to reset