AnyDSL: a partial evaluation framework for programming high-performance libraries
- Publication type:
- Journal article
- Metadata:
-
- Abstract
- <jats:p>This paper advocates programming high-performance code using partial evaluation. We present a clean-slate programming system with a simple, annotation-based, online partial evaluator that operates on a CPS-style intermediate representation. Our system exposes code generation for accelerators (vectorization/parallelization for CPUs and GPUs) via compiler-known higher-order functions that can be subjected to partial evaluation. This way, generic implementations can be instantiated with target-specific code at compile time.</jats:p> <jats:p>In our experimental evaluation we present three extensive case studies from image processing, ray tracing, and genome sequence alignment. We demonstrate that using partial evaluation, we obtain high-performance implementations for CPUs and GPUs from one language and one code base in a generic way. The performance of our codes is mostly within 10%, often closer to the performance of multi man-year, industry-grade, manually-optimized expert codes that are considered to be among the top contenders in their fields.</jats:p>
- Autoren
- Roland Leißa
- Klaas Boesche
- Sebastian Hack
- Arsène Pérard-Gayot
- Richard Membarth
- Philipp Slusallek
- André Müller
- Bertil Schmidt
- DOI
- 10.1145/3276489
- eISSN
- 2475-1421
- Ausgabe der Veröffentlichung
- OOPSLA
- Zeitschrift
- Proceedings of the ACM on Programming Languages
- Sprache
- en
- Online publication date
- 2018
- Paginierung
- 1 - 30
- Datum der Veröffentlichung
- 2018
- Status
- Published
- Herausgeber
- Association for Computing Machinery (ACM)
- Herausgeber URL
- http://dx.doi.org/10.1145/3276489
- Datum der Datenerfassung
- 2023
- Titel
- AnyDSL: a partial evaluation framework for programming high-performance libraries
- Ausgabe der Zeitschrift
- 2
Data source: Crossref
- Other metadata sources:
-
- Beziehungen:
- Property of