AeminiumGPU: An Intelligent Framework for GPU Programming
Authors
Abstract
As a consequence of the immense computational power available in GPUs, the usage of these platforms for running data-intensive general purpose programs has been increasing.Since memory and processor architectures of CPUs and GPUs are substantially different, programs designed for each platform are also very different and often resort to a very distinct set of algorithms and data structures. But, using the right “gear” is not always a guarantee that programs will execute faster on their targeted platform. Variations in the hardware of the GPU and in the size of data, among others, can have a major influence in performance.
ÆminiumGPU is a new high-level programming framework for developing and running parallel programs in CPUs and GPUs. ÆminiumGPU programs are written in a high-level general purpose programming language and compiled into hybrid executables which can run in both platforms. Thus, the decision of which platform is going to be used for executing a program is delayed until run-time and automatically performed by the system using Machine-Learning techniques.
Our tests show that ÆminiumGPU is able to achieve speedups up to 65x and that the average accuracy of the platform selection algorithm, in choosing the best platform for executing a program, is above 92\%.