A Static Analysis-based Cross-Architecture Performance Prediction Using Machine Learning
This addresses the costly and time-consuming process of porting code from CPU to GPU for programmers, though it is incremental as it builds on existing static analysis and machine learning methods.
The paper tackles the problem of predicting GPU speed-up from CPU source code without execution, achieving 94% accuracy in binary classification across thresholds.
Porting code from CPU to GPU is costly and time-consuming; Unless much time is invested in development and optimization, it is not obvious, a priori, how much speed-up is achievable or how much room is left for improvement. Knowing the potential speed-up a priori can be very useful: It can save hundreds of engineering hours, help programmers with prioritization and algorithm selection. We aim to address this problem using machine learning in a supervised setting, using solely the single-threaded source code of the program, without having to run or profile the code. We propose a static analysis-based cross-architecture performance prediction framework (Static XAPP) which relies solely on program properties collected using static analysis of the CPU source code and predicts whether the potential speed-up is above or below a given threshold. We offer preliminary results that show we can achieve 94% accuracy in binary classification, in average, across different thresholds