Rasch A, Schulze R, Gorlatch S
Research article in digital collection (conference) | Peer reviewedPolyhedral 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.
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) |