Bridging the Gap Between General-Purpose and Domain-Specific Compilers with Synthesis

This paper describes a new approach to program optimization that allows general purpose code to benefit from the optimization power of domain-specific compilers. The key to this approach is a synthesis-based technique to raise the level of abstraction of general-purpose code to enable aggressive dom...

Full description

Bibliographic Details
Main Authors: Cheung, Alvin, Kamil, Shoaib, Solar Lezama, Armando
Other Authors: Massachusetts Institute of Technology. Computer Science and Artificial Intelligence Laboratory
Format: Article
Language:en_US
Published: Schloss Dagstuhl--Leibniz-Zentrum fuer Informatik 2018
Online Access:http://hdl.handle.net/1721.1/113362
https://orcid.org/0000-0001-7604-8252
_version_ 1811085332431503360
author Cheung, Alvin
Kamil, Shoaib
Solar Lezama, Armando
author2 Massachusetts Institute of Technology. Computer Science and Artificial Intelligence Laboratory
author_facet Massachusetts Institute of Technology. Computer Science and Artificial Intelligence Laboratory
Cheung, Alvin
Kamil, Shoaib
Solar Lezama, Armando
author_sort Cheung, Alvin
collection MIT
description This paper describes a new approach to program optimization that allows general purpose code to benefit from the optimization power of domain-specific compilers. The key to this approach is a synthesis-based technique to raise the level of abstraction of general-purpose code to enable aggressive domain-specific optimizations. We have been implementing this approach in an extensible system called Herd. The system is designed around a collection of parameterized kernel translators. Each kernel translator is associated with a domain-specific compiler, and the role of each kernel translator is to scan the input code in search of code fragments that can be optimized by the domain-specific compiler embedded within each kernel translator. By leveraging general synthesis technology, it is possible to have a generic kernel translator that can be specialized by compiler developers for each domain-specific compiler, making it easy to build new domain knowledge into the overall system. We illustrate this new approach to build optimizing compilers in two different domains, and highlight research challenges that need to be addressed in order to achieve the ultimate vision.
first_indexed 2024-09-23T13:07:15Z
format Article
id mit-1721.1/113362
institution Massachusetts Institute of Technology
language en_US
last_indexed 2024-09-23T13:07:15Z
publishDate 2018
publisher Schloss Dagstuhl--Leibniz-Zentrum fuer Informatik
record_format dspace
spelling mit-1721.1/1133622022-10-01T13:12:04Z Bridging the Gap Between General-Purpose and Domain-Specific Compilers with Synthesis Cheung, Alvin Kamil, Shoaib Solar Lezama, Armando Massachusetts Institute of Technology. Computer Science and Artificial Intelligence Laboratory Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science Kamil, Shoaib Solar Lezama, Armando This paper describes a new approach to program optimization that allows general purpose code to benefit from the optimization power of domain-specific compilers. The key to this approach is a synthesis-based technique to raise the level of abstraction of general-purpose code to enable aggressive domain-specific optimizations. We have been implementing this approach in an extensible system called Herd. The system is designed around a collection of parameterized kernel translators. Each kernel translator is associated with a domain-specific compiler, and the role of each kernel translator is to scan the input code in search of code fragments that can be optimized by the domain-specific compiler embedded within each kernel translator. By leveraging general synthesis technology, it is possible to have a generic kernel translator that can be specialized by compiler developers for each domain-specific compiler, making it easy to build new domain knowledge into the overall system. We illustrate this new approach to build optimizing compilers in two different domains, and highlight research challenges that need to be addressed in order to achieve the ultimate vision. 2018-01-30T21:40:44Z 2018-01-30T21:40:44Z 2015 Article http://purl.org/eprint/type/ConferencePaper 978-3-939897-80-4 1868-8969 http://hdl.handle.net/1721.1/113362 Cheung, Alvin, Shoaib Kamil, and Armando Solar-Lezama. "Bridging the Gap Between General-Purpose and Domain-Specific Compilers with Synthesis." Leibniz International Proceedings in Informatics (LIPIcs), vol. 32, 2015, pp. 51-61. https://orcid.org/0000-0001-7604-8252 en_US http://dx.doi.org/10.4230/LIPIcs.SNAPL.2015.51 Leibniz International Proceedings in Informatics (LIPIcs) Creative Commons Attribution 4.0 International License http://creativecommons.org/licenses/by/4.0/ application/pdf Schloss Dagstuhl--Leibniz-Zentrum fuer Informatik Dagstuhl Publishing
spellingShingle Cheung, Alvin
Kamil, Shoaib
Solar Lezama, Armando
Bridging the Gap Between General-Purpose and Domain-Specific Compilers with Synthesis
title Bridging the Gap Between General-Purpose and Domain-Specific Compilers with Synthesis
title_full Bridging the Gap Between General-Purpose and Domain-Specific Compilers with Synthesis
title_fullStr Bridging the Gap Between General-Purpose and Domain-Specific Compilers with Synthesis
title_full_unstemmed Bridging the Gap Between General-Purpose and Domain-Specific Compilers with Synthesis
title_short Bridging the Gap Between General-Purpose and Domain-Specific Compilers with Synthesis
title_sort bridging the gap between general purpose and domain specific compilers with synthesis
url http://hdl.handle.net/1721.1/113362
https://orcid.org/0000-0001-7604-8252
work_keys_str_mv AT cheungalvin bridgingthegapbetweengeneralpurposeanddomainspecificcompilerswithsynthesis
AT kamilshoaib bridgingthegapbetweengeneralpurposeanddomainspecificcompilerswithsynthesis
AT solarlezamaarmando bridgingthegapbetweengeneralpurposeanddomainspecificcompilerswithsynthesis