md_poly: A Performance-Portable Polyhedral Compiler Based on Multi-Dimensional Homomorphisms

Rasch A, Schulze R, Gorlatch S

Research article in digital collection (conference) | Peer reviewed

Abstract

Polyhedral compilers automatically parallelize sequential programs for multi- and many-core architectures, such as CPU and GPU. However, parallel code generated by state-of-the-art polyhedral compilers often lacks performance portability, because the existing compilers are usually optimized toward only a single particular architecture (e.g., GPU). Moreover, even on their target architecture, polyhedral compilers sometimes fail to reach high performance, because they often miss important optimizations, e.g., efficiently exploiting fast memory resources. We present our work-in-progress results for md_poly - a novel polyhedral compiler that generates portable high-performance code from sequential C programs with perfect loop nests and rectangular iteration domains. In contrast to the existing polyhedral compilers, md_poly relies on the code generation approach for Multi-Dimensional Homomorphisms (MDHs): we show that the internal program representation of polyhedral compilers (a.k.a. polyhedral model) can be automatically transformed into an equivalent MDH representation; this representation is suitable for generating high-performance program code that is performance portable over different architectures. Our preliminary experimental comparison against PPCG with two benchmarks - Gaussian Convolution and Matrix Multiplication - shows encouraging results: speedups up to 7× on Intel CPU and 3× on NVIDIA GPU on real-world input sizes from deep learning.

Details about the publication

Name of the repositoryGitlab at Inria
StatusPublished
Release year2020
Language in which the publication is writtenEnglish
Conference10th International Workshop on Polyhedral Compilation Techniques, Bologna, Italy
Link to the full texthttps://acohen.gitlabpages.inria.fr/impact/impact2020/papers/IMPACT_2020_paper_5.pdf
Keywordscompilers

Authors from the University of Münster

Gorlatch, Sergei
Professur für Praktische Informatik (Prof. Gorlatch)
Rasch, Ari
Professur für Praktische Informatik (Prof. Gorlatch)
Schulze, Richard
Professur für Praktische Informatik (Prof. Gorlatch)