Understanding the Auto-Tuning of OpenCL Software

From Master Projects
Jump to: navigation, search

About Understanding the Auto-Tuning of OpenCL Software


OpenCL is a popular language for programming a variety of many-core platforms, from GPUs to FPGAs, passing through nodes of multi-core CPUs. OpenCL code is portable among all these different devices, but achieving comparable performance on different devices without modifying the code is far more challenging. In our work, we use auto-tuning to achieve high-performance on different many-core accelerators, without the need to write architecture specific implementations. We have different examples of algorithms for which auto-tuning is essential to achieve high-performance, and algorithms on which the effects of this technique are more marginal. The goal of this project is to study how auto-tuning affects the performance and performance portability of a representative sample of algorithms, and try to derive a predictive model of the effectiveness of this technique.