Abstract
Application programming for GPUs (Graphics Processing Units) is complex and error-prone, because the popular approaches — CUDA and OpenCL — are intrinsically low-level and offer no special support for systems consisting of multiple GPUs. The SkelCL library offers pre-implemented recurring computation and communication patterns (skeletons) which greatly simplify programming for single- and multi-GPU systems. In this paper, we focus on applications that work on two-dimensional data. We extend SkelCL by the matrix data type and the MapOverlap skeleton which specifies computations that depend on neighboring elements in a matrix. The abstract data types and a high-level data (re)distribution mechanism of SkelCL shield the programmer from the low-level data transfers between the system’s main memory and multiple GPUs. We demonstrate how the extended SkelCL is used to implement real-world image processing applications on two-dimensional data. We show that both from a productivity and a performance point of view it is beneficial to use the high-level abstractions of SkelCL.
Chapter PDF
Similar content being viewed by others
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
References
NVIDIA CUDA SDK code samples, Version 3.0 (February 2010)
NVIDIA CUDA API Reference Manual, Version 4.1 (2012)
Enmyren, J., Kessler, C.: SkePU: A multi-backend skeleton programming library for multi-gpu systems. In: Proc. of HLPP 2010 (2010)
Kirk, D.B., Hwu, W.W.: Programming Massively Parallel Processors - A Hands-on Approach. Morgan Kaufman (2010)
Munshi, A.: The OpenCL Specification, Version 1.2 (2011)
NASA. Blue marble: Land surface, shallow water, and shaded topography, http://visibleearth.nasa.gov/view.php?id=57752
University of Southern California SIPI Image Database. Girl (lena, or lenna), http://sipi.usc.edu/database/database.php?volume=misc
Rabhi, F.A., Gorlatch, S. (eds.): Patterns and skeletons for parallel and distributed computing. Springer (2003)
Steuwer, M., Kegel, P., Gorlatch, S.: SkelCL – A portable skeleton library for high-level GPU programming. In: 2011 IEEE International Symposium on Parallel and Distributed Processing Workshops, IPDPSW, pp. 1176–1182 (2011)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2013 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Steuwer, M., Gorlatch, S., Buß, M., Breuer, S. (2013). Using the SkelCL Library for High-Level GPU Programming of 2D Applications. In: Caragiannis, I., et al. Euro-Par 2012: Parallel Processing Workshops. Euro-Par 2012. Lecture Notes in Computer Science, vol 7640. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-36949-0_41
Download citation
DOI: https://doi.org/10.1007/978-3-642-36949-0_41
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-36948-3
Online ISBN: 978-3-642-36949-0
eBook Packages: Computer ScienceComputer Science (R0)