Using the SkelCL Library for High-Level GPU Programming of 2D Applications

  • Michel Steuwer
  • Sergei Gorlatch
  • Matthias Buß
  • Stefan Breuer
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 7640)


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.


Graphic Processing Unit Data Transfer Application Developer Neighboring Element Multiple Device 
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.


  1. 1.
    NVIDIA CUDA SDK code samples, Version 3.0 (February 2010)Google Scholar
  2. 2.
    NVIDIA CUDA API Reference Manual, Version 4.1 (2012)Google Scholar
  3. 3.
    Enmyren, J., Kessler, C.: SkePU: A multi-backend skeleton programming library for multi-gpu systems. In: Proc. of HLPP 2010 (2010)Google Scholar
  4. 4.
    Kirk, D.B., Hwu, W.W.: Programming Massively Parallel Processors - A Hands-on Approach. Morgan Kaufman (2010)Google Scholar
  5. 5.
    Munshi, A.: The OpenCL Specification, Version 1.2 (2011)Google Scholar
  6. 6.
    NASA. Blue marble: Land surface, shallow water, and shaded topography,
  7. 7.
    University of Southern California SIPI Image Database. Girl (lena, or lenna),
  8. 8.
    Rabhi, F.A., Gorlatch, S. (eds.): Patterns and skeletons for parallel and distributed computing. Springer (2003)Google Scholar
  9. 9.
    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)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2013

Authors and Affiliations

  • Michel Steuwer
    • 1
  • Sergei Gorlatch
    • 1
  • Matthias Buß
    • 1
  • Stefan Breuer
    • 1
  1. 1.University of MünsterMünsterGermany

Personalised recommendations