MACHINE LEARNING ASSISTED COMPILATION STRATEGIES FOR CPU-GPU HETEROGENEOUS SYSTEMS

 

Heterogeneous architectures promise to deliver high performance at a relatively lower cost when compared to homogeneous systems. However the full potential of such computing systems can be realized only if the computation is mapped effectively to the different cores present in the system. The task of mapping computational workloads between cores in heterogeneous architectures for improved performance has become increasingly prevalent in recent times. OpenCL is a widely used low-level programming framework which allows programmers to assign workloads to different devices across the system. Determining the optimal partitioning for an OpenCL program on a heterogeneous architecture is an extremely difficult job for an application programmer. The goal of the current work is to use machine learning techniques to determine from static code features of the source program to infer the workload distribution ratio for a CPU-GPU system and perform a source to source compiler level transformation to generate a partitioned version for the same. Future work entails incorporating architectural parameters through version revisions of the computing platform. As hardware characterstics continue to evolve over time, the program partitions derived for a particular application are unlikely to remain constant. So it becomes necessary to learn with additional architectural features to determine the optimal partition of OpenCL programs for different target platforms.