ImageCL: An Image Processing Language for Performance Portability on Heterogeneous Systems
Thomas L. Falch, Anne C. Elster

TL;DR
ImageCL is a high-level language and compiler that simplifies writing portable, high-performance image processing code for heterogeneous systems by automating optimizations and tuning for different hardware devices.
Contribution
We introduce ImageCL, a domain-specific language and source-to-source compiler that automates performance tuning and enhances portability across diverse hardware platforms.
Findings
Achieved up to 4.57x speedup over existing solutions.
Generated optimized code for multiple devices from a single source.
Demonstrated effectiveness on three image processing benchmarks.
Abstract
Modern computer systems typically conbine multicore CPUs with accelerators like GPUs for inproved performance and energy efficiency. However, these sys- tems suffer from poor performance portability, code tuned for one device must be retuned to achieve high performance on another. Image processing is increas- ing in importance , with applications ranging from seismology and medicine to Photoshop. Based on our experience with medical image processing, we propose ImageCL, a high-level domain-specific language and source-to-source compiler, targeting heterogeneous hardware. ImageCL resembles OpenCL, but abstracts away per- formance optimization details, allowing the programmer to focus on algorithm development, rather than performance tuning. The latter is left to our source-to- source compiler and auto-tuner. From high-level ImageCL kernels, our source- to-source compiler can generate…
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 · Advanced Neural Network Applications · Distributed and Parallel Computing Systems
