GPU Performance Auto-tuning Using Machine Learning
Optimizing a program for Graphics Processing Units (GPUs) is critical for performance, yet remains a challenge due to the non-intuitive interactions among the optimizations and the GPU architecture. Automatic optimization tuning for a GPU is demanding particularly given the exploding number of mobile GPU variants in the market. We explore the use of machine learning in optimization auto-tuning, where a statistical model is automatically built to correlate the (measured) performance of some training programs with their characteristics, and is then used to predict the best optimization configuration for a new program without execution. The resulting auto-tuner relieves the programmer from either building an analytical system model by hand or spending a massive amount of time enumerating optimization configurations. This research will form the interns PhD thesis, and its outcome has the potential to significantly enhance the productivity of writing high-performance programs for Qualcomm GPUs.