PENCIL: a Platform-Neutral Compute Intermediate Language for DSL Compilers and for Accelerator Programming
, INRIA - Paris
Date: Thursday, May 14, 2015
Time: 11:00 AM to 12:00 PM Note: all times are in the Eastern Time Zone
Refreshments: 11:00 AM
Host: Saman Amarasinghe, MIT-CSAIL
Contact: Mary McDavitt, 617-253-9620, email@example.com
Speaker URL: None
firstname.lastname@example.org, Commit@lists.csail.mit.edu, email@example.com
TALK: PENCIL: a Platform-Neutral Compute Intermediate Language for DSL Compilers and for Accelerator Programming
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. In this presentation, we will present PENCIL (Platform-Neutral Compute Intermediate Language) and present some details about how it is compiled. PENCIL is 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 language to facilitate accelerator programming, and as an intermediate language for DSL compilers.
We validate the potential of PENCIL on a state-of-the-art polyhedral compiler, extending the applicability of the compiler to dynamic, data dependent control flow and non-affine array accesses. We use the polyhedral compiler to generate highly optimized OpenCL code for a set of standard benchmark suites (Rodinia and SHOC), image processing kernels, and for two DSL compilers: a linear algebra (BLAS) DSL compiler and a DSL for signal processing radar applications (SpearDE). To assess performance portability, we present experimental results on four GPU platforms: AMD Radeon HD 5670 and Radeon R9 285, Nvidia GTX470, and ARM Mali-T604 GPU.
Riyadh Baghdadi is currently a PhD student at INRIA - Paris. During his PhD, he worked on automatic code optimization and on code generation from domain specific languages to OpenCL and CUDA. In the same context, he did an internship at Nvidia working on Nvidia's new NOVA DSL compiler and did a Google summer of code contributing to the polyhedral optimization pass in GCC (Graphite).
Created by Mary McDavitt at Thursday, May 07, 2015 at 7:53 AM.