Patterns and Rewrite Rules for Systematic Code Generation (From High-Level Functional Patterns to High-Performance OpenCL Code)
Michel Steuwer, Christian Fensch, Christophe Dubach

TL;DR
This paper introduces a systematic approach using pattern composition and rewrite rules to transform high-level functional code into optimized, device-specific OpenCL code, balancing performance and portability.
Contribution
It presents a novel method combining algorithmic patterns and rewrite rules to generate high-performance, portable OpenCL code from high-level specifications.
Findings
Generated OpenCL code matches expert-tuned performance.
Systematic transformation enables high-performance device-specific implementations.
Approach simplifies high-level programming for heterogeneous systems.
Abstract
Computing systems have become increasingly complex with the emergence of heterogeneous hardware combining multicore CPUs and GPUs. These parallel systems exhibit tremendous computational power at the cost of increased programming effort. This results in a tension between achieving performance and code portability. Code is either tuned using device-specific optimizations to achieve maximum performance or is written in a high-level language to achieve portability at the expense of performance. We propose a novel approach that offers high-level programming, code portability and high-performance. It is based on algorithmic pattern composition coupled with a powerful, yet simple, set of rewrite rules. This enables systematic transformation and optimization of a high-level program into a low-level hardware specific representation which leads to high performance code. We test our design in…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsParallel Computing and Optimization Techniques · Embedded Systems Design Techniques · Ferroelectric and Negative Capacitance Devices
