Affiliation:
1. Saarland University, Germany
2. Saarland University, Germany / DFKI, Germany
3. Johannes Gutenberg University Mainz, Germany
Abstract
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.
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.
Funder
Bundesministerium für Bildung und Forschung
Intel Visual Computing Institute, Universität des Saarlandes
Cluster of Excellence on Multimodal Computing and Interaction, Saarland University
Publisher
Association for Computing Machinery (ACM)
Subject
Safety, Risk, Reliability and Quality,Software
Reference96 articles.
1. Understanding the efficiency of ray traversal on GPUs
2. Nada Amin and Tiark Rompf. 2018. Collapsing towers of interpreters. PACMPL 2 POPL (2018) 52:1–52:33. 10.1145/3158140 Nada Amin and Tiark Rompf. 2018. Collapsing towers of interpreters. PACMPL 2 POPL (2018) 52:1–52:33. 10.1145/3158140
3. L.O Andersen. 1994. Program Analysis and Specialization for the C Programming Language. Ph.D. Dissertation. Københavns Universitet. Datalogisk Institut. L.O Andersen. 1994. Program Analysis and Specialization for the C Programming Language. Ph.D. Dissertation. Københavns Universitet. Datalogisk Institut.
4. Binding-time analysis and the taming of C pointers
Cited by
21 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献