PENCIL Language Specification

Riyadh Baghdadi, Albert Cohen, Tobias Grosser, Sven Verdoolaege, Anton Lokhmotov, Javed Absar, Sven Van Haastregt, Alexey Kravets, Alastair Donaldson

Research output: Book/ReportOther report

Abstract / Description of output

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 this complexity and to regain some performance portability. We present PENCIL, a rigorously-defined subset of GNU C99 with specific programming rules and few extensions. Adherence to this subset and the use of these extensions enable compilers to exploit parallelism and to better optimize code when targeting accelerators. We intend PENCIL both as a portable implementation language to facilitate the acceleration of applications, and as a tractable target language for DSL compilers.
Original languageEnglish
PublisherINRIA
Number of pages39
Publication statusPublished - 1 May 2015

Keywords / Materials (for Non-textual outputs)

  • PENCIL
  • DSL
  • Accelerator
  • Domain Specific Language
  • Intermediate Language
  • OpenCL

Fingerprint

Dive into the research topics of 'PENCIL Language Specification'. Together they form a unique fingerprint.

Cite this