This paper presents a technique to fully automatically generate
efficient and readable code for parallel processors. We base our
approach on skeleton-based compilation and 'algorithmic
species', an algorithm classification of program code. We use a
tool to automatically annotate C code with species information
where possible. The annotated program code is subsequently fed
into the skeleton-based source-to-source compiler 'Bones', which
generates OpenMP, OpenCL or CUDA code and optimises
host-accelerator transfers. This results in a unique approach,
integrating a skeleton-based compiler for the first time into an
automated flow. We demonstrate the benefits of our approach on
the PolyBench suite by showing average speed-ups of 1.4x and
1.6x for GPU code compared to ppcg and Par4All, two
state-of-the-art compilers.
%0 Book Section
%1 Nugteren2013-nn
%A Nugteren, Cedric
%A Custers, Pieter
%A Corporaal, Henk
%B Advanced Parallel Processing Technologies
%D 2013
%I Springer Berlin Heidelberg
%K Algorithmic_species Code_generation Expose Skeleton-based To_Read
%P 184--198
%T Automatic Skeleton-Based Compilation through Integration with
an Algorithm Classification
%X This paper presents a technique to fully automatically generate
efficient and readable code for parallel processors. We base our
approach on skeleton-based compilation and 'algorithmic
species', an algorithm classification of program code. We use a
tool to automatically annotate C code with species information
where possible. The annotated program code is subsequently fed
into the skeleton-based source-to-source compiler 'Bones', which
generates OpenMP, OpenCL or CUDA code and optimises
host-accelerator transfers. This results in a unique approach,
integrating a skeleton-based compiler for the first time into an
automated flow. We demonstrate the benefits of our approach on
the PolyBench suite by showing average speed-ups of 1.4x and
1.6x for GPU code compared to ppcg and Par4All, two
state-of-the-art compilers.
@incollection{Nugteren2013-nn,
abstract = {This paper presents a technique to fully automatically generate
efficient and readable code for parallel processors. We base our
approach on skeleton-based compilation and 'algorithmic
species', an algorithm classification of program code. We use a
tool to automatically annotate C code with species information
where possible. The annotated program code is subsequently fed
into the skeleton-based source-to-source compiler 'Bones', which
generates OpenMP, OpenCL or CUDA code and optimises
host-accelerator transfers. This results in a unique approach,
integrating a skeleton-based compiler for the first time into an
automated flow. We demonstrate the benefits of our approach on
the PolyBench suite by showing average speed-ups of 1.4x and
1.6x for GPU code compared to ppcg and Par4All, two
state-of-the-art compilers.},
added-at = {2015-04-10T18:02:47.000+0200},
author = {Nugteren, Cedric and Custers, Pieter and Corporaal, Henk},
biburl = {https://www.bibsonomy.org/bibtex/2bdffe639bb2ed5155f551d3e1a09e630/christophv},
booktitle = {Advanced Parallel Processing Technologies},
interhash = {7a6372d54b5dc6ec5af74a806ce0e5c3},
intrahash = {bdffe639bb2ed5155f551d3e1a09e630},
keywords = {Algorithmic_species Code_generation Expose Skeleton-based To_Read},
pages = {184--198},
publisher = {Springer Berlin Heidelberg},
series = {Lecture Notes in Computer Science},
timestamp = {2016-01-04T14:22:08.000+0100},
title = {Automatic {Skeleton-Based} Compilation through Integration with
an Algorithm Classification},
year = 2013
}