Machine Learning Based Auto-tuning for Enhanced OpenCL Performance Portability
Thomas L. Falch, Anne C. Elster

TL;DR
This paper presents a machine learning approach using neural networks to auto-tune OpenCL code, significantly improving performance portability across diverse heterogeneous devices by efficiently exploring the tuning parameter space.
Contribution
It introduces a neural network-based auto-tuning method that reduces the need for re-tuning across different hardware devices, enhancing OpenCL performance portability.
Findings
Achieves a mean relative error of 6.1% in tuning predictions
Finds configurations within 1.3% of the global minimum
Effective across CPUs and GPUs from different vendors
Abstract
Heterogeneous computing, which combines devices with different architectures, is rising in popularity, and promises increased performance combined with reduced energy consumption. OpenCL has been proposed as a standard for programing such systems, and offers functional portability. It does, however, suffer from poor performance portability, code tuned for one device must be re-tuned to achieve good performance on another device. In this paper, we use machine learning-based auto-tuning to address this problem. Benchmarks are run on a random subset of the entire tuning parameter configuration space, and the results are used to build an artificial neural network based model. The model can then be used to find interesting parts of the parameter space for further search. We evaluate our method with different benchmarks, on several devices, including an Intel i7 3770 CPU, an Nvidia K40 GPU…
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.
