Abstract
In contrast with the increasing popularity of heterogeneous systems, programming on these systems remains complex and time-consuming. Developers have to access heterogeneous processors through explicitly and error-prone operations provided by low-level approaches like OpenCL. We present OCLS (OpenCL Simplified), a high-level abstraction based framework and its implementation as a minimal library on the top of OpenCL. OCLS shields hardware details, simplifies the development process and handles the environment configuration and data movement implicitly. Its APIs act like ordinary functions and require little prior training. OCLS thus reduces heterogeneous programming effort and relieves the programmers of low-level programming. We evaluated OCLS across a set of different benchmarks. The size of benchmarks rewritten in OCLS reduced by an average ratio of 35.4 %. In the experiment on both GPU and Intel MIC platforms with data sets in different size, OCLS yielded better performance than original OpenCL programs and showed a good stability and portability.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
Top500.org. http://www.top500.org/
Javier Diaz, Camelia Munoz-Caro, Alfonso N (2012) A survey of parallel programming models and tools in the multi and many-core era. IEEE Trans Parallel Distrib Syst 23(8):1369–1386
Brodtkorb Andre R, Christopher Dyken, Hagen Trond R et al (2010) State-of-the-art in heterogeneous computing. Sci Program 18:1–33
The OpenCL specification. https://www.khronos.org/opencl/
OpenACC–directives for accelerators. http://www.openacc-standard.org/
de Souza Rosa Gomes R, Figueiredo JM, Martins CA et al (2014) A framework for automating the configuration of OpenCL. Environ Model Softw 53:81–86
Henry S, Denis A, Barthou D, Counilh M-C, Namyst R (2014) Toward OpenCL automatic multi-device support. In: Euro-Par 2014, LNCS, vol 8632. Springer, Heidelberg, pp 776–787
Steuwer M, Gorlatch S (2014) SkelCL: a high-level extension of OpenCL for multi-GPU systems. J Supercomput 69:25–33
You Y-P, Wu H-J, Tsai Y-N et al (2015) VirtCL: a framework for OpenCL device abstraction and management. In: 20th ACM SIGPLAN symposium on principles and practice of parallel programming. ACM, New York, pp 161–172
CUDA toolkit. https://developer.nvidia.com/cuda-toolkit
Parboil Benchmarks. http://impact.crhc.illinois.edu/Parboil/parboil.aspx
Acknowledgments
This work is supported by the National Natural Science Foundation of China (NSFC) under Grant No.61173039, and the National High Technology Research and Development Program (863 Program) of China under Grant No. 2012AA010904.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2016 Springer Science+Business Media Singapore
About this paper
Cite this paper
Wu, S., Dong, X., Chen, H., Dang, B. (2016). OCLS: A Simplified High-Level Abstraction Based Framework for Heterogeneous Systems. In: Park, J., Yi, G., Jeong, YS., Shen, H. (eds) Advances in Parallel and Distributed Computing and Ubiquitous Services. Lecture Notes in Electrical Engineering, vol 368. Springer, Singapore. https://doi.org/10.1007/978-981-10-0068-3_7
Download citation
DOI: https://doi.org/10.1007/978-981-10-0068-3_7
Published:
Publisher Name: Springer, Singapore
Print ISBN: 978-981-10-0067-6
Online ISBN: 978-981-10-0068-3
eBook Packages: Computer ScienceComputer Science (R0)