An OpenCL Framework for Multicore CPUs
Heterogeneous parallel computing platforms, which are composed of different processors (e.g., CPUs, GPUs, Coprocessors, FPGAs, and DSPs), are widening their user base in all computing domains. With this trend, parallel programming models need to achieve portability across different processors as well as high performance with reasonable programming effort. Open Computing Language (OpenCL) is an open standard and emerging parallel programming model to write parallel applications for such heterogeneous platforms.
In this talk, we present the design and implementation of an OpenCL framework that targets multicore CPU architectures. Our OpenCL framework consists of the OpenCL runtime and the OpenCL C compiler, which is an OpenCL-C-to-C source-to-source translator. We also propose a profiling-based algorithm that finds a work-group size to maximize performance for the target multicore CPU architecture since the selection of work-group size heavily impacts performance. We show the effectiveness of our OpenCL framework and work-group size selection method on diverse CPU architectures. The experimental results show that our approach is effective and promising.