17926

ImageCL: Language and source-to-source compiler for performance portability, load balancing, and scalability prediction on heterogeneous systems

Thomas L. Falch, Anne C. Elster
Department of Computer Science,Norwegian University of Science and Technology (NTNU), Trondheim, Norway
Concurrency and Computation: Practice and Experience: e4384, 2017

@article{falch2017imagecl,

   title={ImageCL: Language and source-to-source compiler for performance portability, load balancing, and scalability prediction on heterogeneous systems},

   author={Falch, Thomas L and Elster, Anne C},

   journal={Concurrency and Computation: Practice and Experience},

   year={2017},

   publisher={Wiley Online Library}

}

Download Download (PDF)   View View   Source Source   Source codes Source codes

Package:

644

views

Applications written for heterogeneous CPU-GPU systems often suffer from poor performance portability. Finding good work partitions can also be challenging as different devices are suited for different applications. This article describes ImageCL, a high-level domain-specific language and source-to-source compiler, targeting single system as well as distributed heterogeneous hardware. Initially targeting image processing algorithms, our framework now also handles general stencil-based operations. It resembles OpenCL, but abstracts away performance optimization details which instead are handled by our source-to-source compiler. Machine learning-based auto-tuning is used to determine which optimizations to apply. For the distributed case, by measuring performance counters on a small input on one device, previously trained performance models are used to predict the throughput of the application on multiple different devices, making it possible to balance the load evenly. Models for the communication overhead are created in a similar fashion and used to predict the optimal number of nodes to use. ImageCL outperforms other state-of-the-art solutions on image processing benchmarks in several cases, achieving speedups of up to 4.57x. On both CPUs and GPUs we are only 3% and 2% slower than an oracle for load balancing and scalability prediction, respectively, using synthetic benchmarks.
Rating: 2.5/5. From 2 votes.
Please wait...

* * *

* * *

Featured events

HGPU group © 2010-2018 hgpu.org

All rights belong to the respective authors

Contact us: