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

08/13/2019
by   Bruce Collie, et al.
0

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× to over 10× on end to end performance when using accelerator libraries.

READ FULL TEXT

page 1

page 9

research
08/13/2019

Type-Directed Program Synthesis and Constraint Generation for Library Portability

Fast numerical libraries have been a cornerstone of scientific computing...
research
04/10/2023

Deploying Machine Learning Models to Ahead-of-Time Runtime on Edge Using MicroTVM

In the past few years, more and more AI applications have been applied t...
research
01/22/2020

Automatically Harnessing Sparse Acceleration

Sparse linear algebra is central to many scientific programs, yet compil...
research
04/04/2019

Automated Fortran--C++ Bindings for Large-Scale Scientific Applications

Although many active scientific codes use modern Fortran, most contempor...
research
12/10/2018

Functional Design of Computation Graph

Representing the control flow of a computer program as a computation gra...
research
10/09/2020

Modeling Black-Box Components with Probabilistic Synthesis

This paper is concerned with synthesizing programs based on black-box or...
research
06/03/2021

Optimistic Concurrency Control for Real-world Go Programs (Extended Version with Appendix)

We present a source-to-source transformation framework, GOCC, that consu...

Please sign up or login with your details

Forgot password? Click here to reset