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

作者: Michael F.P. O'Boyle , Philip Ginsbach , Bruce Collie

DOI: 10.1109/PACT.2019.00013

关键词:

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

参考文章(36)
Peter-Michael Osera, Steve Zdancewic, Type-and-example-directed program synthesis programming language design and implementation. ,vol. 50, pp. 619- 630 ,(2015) , 10.1145/2737924.2738007
Charith Mendis, Jeffrey Bosboom, Kevin Wu, Shoaib Kamil, Jonathan Ragan-Kelley, Sylvain Paris, Qin Zhao, Saman Amarasinghe, Helium: lifting high-performance stencil kernels from stripped x86 binaries to halide DSL code programming language design and implementation. ,vol. 50, pp. 391- 402 ,(2015) , 10.1145/2737924.2737974
Jonathan Ragan-Kelley, Connelly Barnes, Andrew Adams, Sylvain Paris, Frédo Durand, Saman Amarasinghe, Halide: a language and compiler for optimizing parallelism, locality, and recomputation in image processing pipelines programming language design and implementation. ,vol. 48, pp. 519- 530 ,(2013) , 10.1145/2491956.2462176
Venkatesh Srinivasan, Thomas Reps, Synthesis of machine code from semantics programming language design and implementation. ,vol. 50, pp. 596- 607 ,(2015) , 10.1145/2737924.2737960
John K. Feser, Swarat Chaudhuri, Isil Dillig, Synthesizing data structure transformations from input-output examples programming language design and implementation. ,vol. 50, pp. 229- 239 ,(2015) , 10.1145/2737924.2737977
Johannes Henkel, Amer Diwan, CatchUp!: capturing and replaying refactorings to support API evolution international conference on software engineering. pp. 274- 283 ,(2005) , 10.1145/1062455.1062512
Koen Claessen, John Hughes, QuickCheck ACM SIGPLAN Notices. ,vol. 46, pp. 53- 64 ,(2011) , 10.1145/1988042.1988046
D. Dig, R. Johnson, The role of refactorings in API evolution international conference on software maintenance. pp. 389- 398 ,(2005) , 10.1109/ICSM.2005.90
Niranjan Hasabnis, Rui Qiao, R. Sekar, Checking correctness of code generator architecture specifications symposium on code generation and optimization. pp. 167- 178 ,(2015) , 10.5555/2738600.2738622
Sumit Gulwani, Susmit Jha, Ashish Tiwari, Ramarathnam Venkatesan, Synthesis of loop-free programs programming language design and implementation. ,vol. 46, pp. 62- 73 ,(2011) , 10.1145/1993316.1993506