English

Learning to Compile Programs to Neural Networks

Machine Learning 2024-07-23 v1 Artificial Intelligence

Abstract

A neural surrogate of a program\textit{neural surrogate of a program} is a neural network that mimics the behavior of a program. Researchers have used these neural surrogates to automatically tune program inputs, adapt programs to new settings, and accelerate computations. Researchers traditionally develop neural surrogates by training on input-output examples from a single program. Alternatively, language models trained on a large dataset including many programs can consume program text, to act as a neural surrogate. Using a language model to both generate a surrogate and act as a surrogate, however, leading to a trade-off between resource consumption and accuracy. We present neural surrogate compilation\textit{neural surrogate compilation}, a technique for producing neural surrogates directly from program text without coupling neural surrogate generation and execution. We implement neural surrogate compilers using hypernetworks trained on a dataset of C programs and find that they produce neural surrogates that are 1.91.9-9.5×9.5\times as data-efficient, produce visual results that are 1.01.0-1.3×1.3\times more similar to ground truth, and train in 4.34.3-7.3×7.3\times fewer epochs than neural surrogates trained from scratch.

Keywords

Cite

@article{arxiv.2407.15078,
  title  = {Learning to Compile Programs to Neural Networks},
  author = {Logan Weber and Jesse Michel and Alex Renda and Michael Carbin},
  journal= {arXiv preprint arXiv:2407.15078},
  year   = {2024}
}
R2 v1 2026-06-28T17:48:37.186Z