A Transformation-Based Approach to Developing High-Performance GPU Programs

Hagedorn B., Steuwer M., Gorlatch S.

Research article in edited proceedings (conference) | Peer reviewed

Abstract

We advocate the use of formal patterns and transformations for programming modern many-core processors like Graphics Processing Units (GPU), as an alternative to the currently used low-level, ad hoc programming approaches like CUDA or OpenCL. Our new contribution is introducing an intermediate level of low-level patterns in order to bridge the abstraction gap between popular high-level patterns (map, fold/reduce, zip, etc.) and imperative, executable code for many-cores. We define our low-level patterns based on the OpenCL programming model which is portable across parallel architectures of different vendors, and we introduce semantics-preserving rewrite rules that transform programs with high-level patterns into programs with low-level patterns, from which executable OpenCL programs are automatically generated. We show that program design decisions and optimizations, which are usually applied ad-hoc by experts, are systematically expressed in our approach as provably-correct transformations for high- and low-level patterns. We evaluate our approach by systematically deriving several differently optimized OpenCL implementations of parallel reduction that achieve performance competitive with OpenCL programs which are manually written and highly tuned by performance experts.

Details about the publication

Page range179-195
Publishing companySpringer
Title of seriesLecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics) (ISSN: 0302-9743)
Volume of seriesnull
StatusPublished
Release year2018
Language in which the publication is writtenEnglish
Conference11th International Andrei Ershov Memorial Conference on Perspectives of System Informatics, PSI 2017, rus, undefined
ISBN9783319743127
DOI10.1007/978-3-319-74313-4_14
Link to the full texthttps://www.scopus.com/inward/record.uri?partnerID=HzOxMe3b&scp=85041733384&origin=inward
KeywordsAlgorithmic patterns; Code generation; GPU; OpenCL; Parallel programming; Rewrite rules; Skeletons; Transformations

Authors from the University of Münster

Gorlatch, Sergei
Professur für Praktische Informatik (Prof. Gorlatch)
Hagedorn, Bastian
Professur für Praktische Informatik (Prof. Gorlatch)