PENCIL: a Platform-Neutral Compute Intermediate Language for Accelerator Programming

  • Riyadh Baghdadi, Ulysse Beaugnon, Albert Cohen, Tobias Grosser, Michael Kruse, Chandan Reddy, Sven Verdoolaege, Mohammed Javed Absar, Sven Van Haastregt, Alexey Kravets, Anton Lokhmotov, Robert David, Elnar Hajiyev, Adam Betts, Alastair Donaldson, and Jeroen Ketema. PENCIL: a Platform-Neutral Compute Intermediate Language for Accelerator Programming. In Proceedings of The 24th International Conference on Parallel Architectures and Compilation Techniques (PACT 2015), pages 138-149, San Francisco, California, USA, 2015. doi:10.1109/PACT.2015.17
    [BibTeX] [Abstract] [Download PDF]

    Programming accelerators such as GPUs with low-level APIs and languages such as OpenCL and CUDA is difficult, error-prone, and not performance-portable. Automatic parallelization and domain specific languages (DSLs) have been proposed to hide complexity and regain performance portability. We present PENCIL, a rigorously-defined subset of GNU C99—enriched with additional language constructs—that enables compilers to exploit parallelism and produce highly optimized code when targeting accelerators. PENCIL aims to serve both as a portable implementation language for libraries, and as a target language for DSL compilers. We implemented a PENCIL-to-OpenCL backend using a state-of-the-art polyhedral compiler. The polyhedral compiler, extended to handle data-dependent control flow and non-affine array accesses, generates optimized OpenCL code. To demonstrate the potential and performance portability of PENCIL and the PENCIL-to-OpenCL compiler, we consider a number of image processing kernels, a set of benchmarks from the Rodinia and SHOC suites, and DSL embedding scenarios for linear algebra (BLAS) and signal processing radar applications (SpearDE), and present experimental results for four GPU platforms: AMD Radeon HD 5670 and R9 285, NVIDIA GTX 470, and ARM Mali-T604.

    @InProceedings{2015-10-BAGHDADI,
    author = {Riyadh Baghdadi and Ulysse Beaugnon and Albert Cohen and Tobias Grosser and Michael Kruse and Chandan Reddy and Sven Verdoolaege and Mohammed Javed Absar and Sven Van Haastregt and Alexey Kravets and Anton Lokhmotov and Robert David and Elnar Hajiyev and Adam Betts and Alastair Donaldson and Jeroen Ketema},
    title = {{PENCIL: a Platform-Neutral Compute Intermediate Language for Accelerator Programming}},
    booktitle = {{Proceedings of The 24th International Conference on Parallel Architectures and Compilation Techniques (PACT 2015)}},
    date = {2015-10-18/2015-10-21},
    address = {San Francisco, California, USA},
    url = {http://www.ketema.eu/publ/pencil.pdf},
    abstract = {Programming accelerators such as GPUs with low-level APIs and languages such as OpenCL and CUDA is difficult, error-prone, and not performance-portable. Automatic parallelization and domain specific languages (DSLs) have been proposed to hide complexity and regain performance portability. We present PENCIL, a rigorously-defined subset of GNU C99—enriched with additional language constructs—that enables compilers to exploit parallelism and produce highly optimized code when targeting accelerators. PENCIL aims to serve both as a portable implementation language for libraries, and as a target language for DSL compilers.
    We implemented a PENCIL-to-OpenCL backend using a state-of-the-art polyhedral compiler. The polyhedral compiler, extended to handle data-dependent control flow and non-affine array accesses, generates optimized OpenCL code. To demonstrate the potential and performance portability of PENCIL and the PENCIL-to-OpenCL compiler, we consider a number of image processing kernels, a set of benchmarks from the Rodinia and SHOC suites, and DSL embedding scenarios for linear algebra (BLAS) and signal processing radar applications (SpearDE), and present experimental results for four GPU platforms: AMD Radeon HD 5670 and R9 285, NVIDIA GTX 470, and ARM Mali-T604.},
    doi = {10.1109/PACT.2015.17},
    pages = {138-149},
    year = {2015}
    }

This entry was posted in Dissemination. Bookmark the permalink.

Comments are closed.