Performance Gaps between OpenMP and OpenCL for Multi-core CPUs

Performance Gaps between OpenMP and OpenCL for Multi-core CPUs
复制标题

DOI:
10.1109/icppw.2012.18
复制
发表时间:
2012-09
期刊:
2012 41st International Conference on Parallel Processing Workshops
影响因子:
--
通讯作者:
Jie Shen;Jianbin Fang;H. Sips;A. Varbanescu
Jie Shen;Jianbin Fang;H. Sips;A. Varbanescu
中科院分区:
其他
文献类型:
--
作者:
Jie Shen;Jianbin Fang;H. Sips;A. Varbanescu

文献摘要

被引文献

相似文献

OpenCL和OpenMP是多核处理器最常用的编程模型。它们在并行化的方法上也有根本的不同。在本文中,我们重点比较了OpenCL和OpenMP的性能。我们从Rodinia基准套件(提供等效的OpenMP和OpenCL实现)中选择了三个应用程序,并在三个多核平台上使用不同的数据集进行了实验。我们看到,多核cpu的不正确使用、OpenCL固有的细粒度并行性以及不成熟的OpenCL编译器是导致OpenCL性能较差的主要原因。在将OpenCL版本调优为对cpu更友好之后,我们发现在超过80%的情况下,OpenCL的性能优于或达到了类似的性能。因此,我们相信OpenCL是多核CPU编程的一个很好的替代方案。
OpenCL and OpenMP are the most commonly used programming models for multi-core processors. They are also fundamentally different in their approach to parallelization. In this paper, we focus on comparing the performance of OpenCL and OpenMP. We select three applications from the Rodinia benchmark suite (which provides equivalent OpenMP and OpenCL implementations), and carry out experiments with different datasets on three multi-core platforms. We see that the incorrect usage of the multi-core CPUs, the inherent OpenCL fine-grained parallelism, and the immature OpenCL compilers are the main reasons that lead to the OpenCL poorer performance. After tuning the OpenCL versions to be more CPU-friendly, we show that OpenCL either outperforms or achieves similar performance in more than 80% of the cases. Therefore, we believe that OpenCL is a good alternative for multi-core CPU programming.