Using the SkelCL library for high-level GPU programming of 2d applications

  • Authors:
  • Michel Steuwer;Sergei Gorlatch;Matthias Buß;Stefan Breuer

  • Affiliations:
  • University of Münster, Münster, Germany;University of Münster, Münster, Germany;University of Münster, Münster, Germany;University of Münster, Münster, Germany

  • Venue:
  • Euro-Par'12 Proceedings of the 18th international conference on Parallel processing workshops
  • Year:
  • 2012

Quantified Score

Hi-index 0.00

Visualization

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.