GPU accelerated program synthesis: Enumerate semantics, not syntax!
By: Martin Berger, Nathanaël Fijalkow, Mojtaba Valizadeh
Potential Business Impact:
Makes computers write code from examples faster.
Program synthesis is an umbrella term for generating programs and logical formulae from specifications. With the remarkable performance improvements that GPUs enable for deep learning, a natural question arose: can we also implement a search-based program synthesiser on GPUs to achieve similar performance improvements? In this article we discuss our insights on this question, based on recent works~. The goal is to build a synthesiser running on GPUs which takes as input positive and negative example traces and returns a logical formula accepting the positive and rejecting the negative traces. With GPU-friendly programming techniques -- using the semantics of formulae to minimise data movement and reduce data-dependent branching -- our synthesiser scales to significantly larger synthesis problems, and operates much faster than the previous CPU-based state-of-the-art. We believe the insights that make our approach GPU-friendly have wide potential for enhancing the performance of other formal methods (FM) workloads.
Similar Papers
Functional Program Synthesis with Higher-Order Functions and Recursion Schemes
Neural and Evolutionary Computing
Makes computers write their own code better.
From Provable Correctness to Probabilistic Generation: A Comparative Review of Program Synthesis Paradigms
Programming Languages
Computers write code from simple instructions.
Program Synthesis via Test-Time Transduction
Artificial Intelligence
Teaches computers to write code from examples.