TL;DR
This paper formalizes surrogate-based programming patterns, demonstrating their effectiveness in accelerating, adapting, and optimizing CPU simulators through case studies and establishing a foundational methodology for surrogate-based workflows.
Contribution
It introduces a formal taxonomy and programming methodology for surrogate-based design patterns, validated through large-scale CPU simulator case studies.
Findings
Surrogate compilation accelerates CPU simulation by 1.6x.
Surrogate adaptation reduces error by up to 50%.
Surrogate optimization decreases error by 5% over expert parameters.
Abstract
Surrogates, models that mimic the behavior of programs, form the basis of a variety of development workflows. We study three surrogate-based design patterns, evaluating each in case studies on a large-scale CPU simulator. With surrogate compilation, programmers develop a surrogate that mimics the behavior of a program to deploy to end-users in place of the original program. Surrogate compilation accelerates the CPU simulator under study by . With surrogate adaptation, programmers develop a surrogate of a program then retrain that surrogate on a different task. Surrogate adaptation decreases the simulator's error by up to . With surrogate optimization, programmers develop a surrogate of a program, optimize input parameters of the surrogate, then plug the optimized input parameters back into the original program. Surrogate optimization finds simulation parameters that…
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.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
