GLOpenCL: OpenCL support on hardware- and software-managed cache multicores

Konstantis Daloukas, Christos D. Antonopoulos, Nikolaos Bellas
University of Thessaly Volos, Greece
In Proceedings of the 6th International Conference on High Performance and Embedded Architectures and Compilers (2011), pp. 15-24


   title={GLOpenCL: OpenCL support on hardware-and software-managed cache multicores},

   author={Daloukas, K. and Antonopoulos, C.D. and Bellas, N.},

   booktitle={Proceedings of the 6th International Conference on High Performance and Embedded Architectures and Compilers},





Source Source   



OpenCL is an industry supported standard for writing programs that execute on multicore platforms as well as on accelerators, such as GPUs or the SPEs of the Cell B.E. In this paper we introduce GLOpenCL, a unified development framework which supports OpenCL on both homogeneous, shared memory, as well as on heterogeneous, distributed memory multicores. The framework consists of a compiler, based on the LLVM compiler infrastructure, and a run-time library, sharing the same basic architecture across all target platforms. The compiler recognizes OpenCL constructs, performs source-to-source code transformations targeting both efficiency and semantic correctness, and adds calls to the run-time library. The latter offers functionality for work creation, management and execution, as well as for data transfers. We evaluate our framework using benchmarks from the distributions of OpenCL implementations by hardware vendors. We find that our generic system performs comparably or better than customized, platform-specific vendor distributions. OpenCL is designed and marketed as a write-once run-anywhere software development framework. However, the standard leaves enough room for target platform specific optimizations. Our experimentation with different, customized implementations of kernels reveals that optimized, hardware mapped implementations are both possible and necessary in the context of OpenCL — especially on non-conventional multicores — if performance is considered a higher priority than programmability.
No votes yet.
Please wait...

* * *

* * *

HGPU group © 2010-2017 hgpu.org

All rights belong to the respective authors

Contact us: