Lift: A Functional Data-Parallel IR for High-Performance GPU Code Generation

Michel Steuwer, Toomas Remmelg, Christophe Dubach

Research output: Chapter in Book/Report/Conference proceedingConference contribution

Abstract

Parallel patterns (e.g., map, reduce) have gained traction as an abstraction for targeting parallel accelerators and are a promising answer to the performance portability problem. However, compiling high-level programs into efficient lowlevel parallel code is challenging. Current approaches start from a high-level parallel IR and proceed to emit GPU code directly in one big step. Fixed strategies are used to optimize and map parallelism exploiting properties of a particular GPU generation leading to performance portability issues.
We introduce the Lift IR, a new data-parallel IR which encodes OpenCL-specific constructs as functional patterns. Our prior work has shown that this functional nature simplifies the exploration of optimizations and mapping of parallelism from portable high-level programs using rewrite-rules.
This paper describes how Lift IR programs are compiled into efficient OpenCL code. This is non-trivial as many performance sensitive details such as memory allocation, array accesses or synchronization are not explicitly represented in the Lift IR. We present techniques which overcome this challenge by exploiting the pattern’s high-level semantics. Our evaluation shows that the Lift IR is flexible enough to express GPU programs with complex optimizations achieving performance on par with manually optimized code.
Original languageEnglish
Title of host publicationCGO 2017 Proceedings of the 2017 International Symposium on Code Generation and Optimization
PublisherInstitute of Electrical and Electronics Engineers (IEEE)
Pages74-85
Number of pages12
ISBN (Print)978-1-5090-4931-8
DOIs
Publication statusPublished - 28 Feb 2017
EventInternational Symposium on Code Generation and Optimization (CGO) 2017 - Austin, Texas, United States
Duration: 4 Feb 20178 Feb 2017

Conference

ConferenceInternational Symposium on Code Generation and Optimization (CGO) 2017
Country/TerritoryUnited States
CityAustin, Texas
Period4/02/178/02/17

Fingerprint

Dive into the research topics of 'Lift: A Functional Data-Parallel IR for High-Performance GPU Code Generation'. Together they form a unique fingerprint.

Cite this