Fuzzy classification of OpenCL programs targeting heterogeneous systems
Heterogeneous systems featuring multiple kinds of processors are becoming increasingly attractive due to their high performance and energy savings over their homogeneous counterparts. With the OpenCL as a unified programming language providing program portability across different types of accelerators, finding the best task-to-device mapping will be the key to achieve such a high performance. We introduce in this work the design of a fuzzy logic classifier and the evaluation of its performance in classifying OpenCL workloads in a CPU-GPU-FPGA heterogeneous environment based on carefully analyzed kernel features. The classifier is designed as part of a scheduling scheme. Results demonstrate substantial improvement in accuracy when compared to other classifiers such as the K-Nearest- Neighbor (KNN), Support-Vector-Machine (SVM), Random-Forest (RF), Naïve-Bayes (NB) and the Bayes-Network (BN) with low computational complexity, facilitating run-time operation.