Auto-tuning SkePU: A Multi-backend Skeleton Programming Framework for multi-GPU Systems

Created by W.Langdon from gp-bibliography.bib Revision:1.4420

  author =       "Usman Dastgeer and Johan Enmyren and 
                 Christoph W. Kessler",
  title =        "Auto-tuning {SkePU}: A Multi-backend Skeleton
                 Programming Framework for {multi-GPU} Systems",
  booktitle =    "Proceedings of the 4th International Workshop on
                 Multicore Software Engineering, IWMSE-2011",
  year =         "2011",
  editor =       "Harald Gall and Nenad Medvidovic",
  pages =        "25--32",
  address =      "Waikiki, Honolulu, HI, USA",
  publisher_address = "New York, NY, USA",
  month =        "21-28 " # may,
  acmid =        "1984697",
  publisher =    "ACM",
  keywords =     "genetic algorithms, genetic programming, auto-tuning,
                 CUDA, data parallelism, GPU, openCL, skeleton
  isbn13 =       "978-1-4503-0577-8",
  URL =          "",
  DOI =          "doi:10.1145/1984693.1984697",
  size =         "8 pages",
  abstract =     "SkePU is a C++ template library that provides a simple
                 and unified interface for specifying data-parallel
                 computations with the help of skeletons on GPUs using
                 CUDA and OpenCL. The interface is also general enough
                 to support other architectures, and SkePU implements
                 both a sequential CPU and a parallel OpenMP backend. It
                 also supports multi-GPU systems. Currently available
                 skeletons in SkePU include map, reduce, mapreduce,
                 map-with-overlap, maparray, and scan. The performance
                 of SkePU generated code is comparable to that of
                 hand-written code, even for more complex applications
                 such as ODE solving.

                 In this paper, we discuss initial results from
                 auto-tuning SkePU using an off-line, machine learning
                 approach where we adapt skeletons to a given platform
                 using training data. The prediction mechanism at
                 execution time uses off-line pre-calculated estimates
                 to construct an execution plan for any desired
                 configuration with minimal overhead. The prediction
                 mechanism accurately predicts execution time for
                 repetitive executions and includes a mechanism to
                 predict execution time for user functions of different
                 complexity. The tuning framework covers selection
                 between different backends as well as choosing optimal
                 parameter values for the selected backend. We will
                 discuss our approach and initial results obtained for
                 different skeletons (map, mapreduce, reduce).",
  notes =        "Although it claims to use GP it seems to be adapting
                 parameters rather than code.

                 also known as \cite{Dastgeer:2011:ASM:1984693.1984697}

Genetic Programming entries for Usman Dastgeer Johan Enmyren Christoph W Kessler