# Type-Directed Program Synthesis and Constraint Generation for Library   Portability

**Authors:** Bruce Collie, Philip Ginsbach, Michael F.P. O'Boyle

arXiv: 1908.04546 · 2019-10-10

## TL;DR

This paper presents a novel scheme for automatically porting scientific and deep learning programs to new accelerator libraries by combining program synthesis and constraint-based matching, improving portability and performance.

## Contribution

It introduces a method that synthesizes library semantics and generates constraints to facilitate code porting without source code access to libraries.

## Key findings

- Achieved speedups of 1.1× to over 10× on real applications.
- Successfully ported large scientific and deep learning programs.
- Demonstrated effectiveness in heterogeneous computing environments.

## Abstract

Fast numerical libraries have been a cornerstone of scientific computing for decades, but this comes at a price. Programs may be tied to vendor specific software ecosystems resulting in polluted, non-portable code. As we enter an era of heterogeneous computing, there is an explosion in the number of accelerator libraries required to harness specialized hardware. We need a system that allows developers to exploit ever-changing accelerator libraries, without over-specializing their code.   As we cannot know the behavior of future libraries ahead of time, this paper develops a scheme that assists developers in matching their code to new libraries, without requiring the source code for these libraries.   Furthermore, it can recover equivalent code from programs that use existing libraries and automatically port them to new interfaces. It first uses program synthesis to determine the meaning of a library, then maps the synthesized description into generalized constraints which are used to search the program for replacement opportunities to present to the developer.   We applied this approach to existing large applications from the scientific computing and deep learning domains. Using our approach, we show speedups ranging from 1.1$\times$ to over 10$\times$ on end to end performance when using accelerator libraries.

## Full text

_Full body text omitted from this summary view._ Fetch the complete paper as Markdown: https://tomesphere.com/paper/1908.04546/full.md

## Figures

9 figures with captions in the complete paper: https://tomesphere.com/paper/1908.04546/full.md

## References

45 references — full list in the complete paper: https://tomesphere.com/paper/1908.04546/full.md

---
Source: https://tomesphere.com/paper/1908.04546