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

Hagedorn B., Steuwer M., Gorlatch S.

Forschungsartikel in Sammelband (Konferenz) | Peer reviewed

Zusammenfassung

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 zur Publikation

Seitenbereich179-195
VerlagSpringer
Titel der ReiheLecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics) (ISSN: 0302-9743)
Nr. in Reihenull
StatusVeröffentlicht
Veröffentlichungsjahr2018
Sprache, in der die Publikation verfasst istEnglisch
Konferenz11th International Andrei Ershov Memorial Conference on Perspectives of System Informatics, PSI 2017, rus, undefined
ISBN9783319743127
DOI10.1007/978-3-319-74313-4_14
Link zum Volltexthttps://www.scopus.com/inward/record.uri?partnerID=HzOxMe3b&scp=85041733384&origin=inward
StichwörterAlgorithmic patterns; Code generation; GPU; OpenCL; Parallel programming; Rewrite rules; Skeletons; Transformations

Autor*innen der Universität Münster

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