PLCLOct 6, 2019

Design and Use of Loop-Transformation Pragmas

arXiv:1910.02375v14 citations
Originality Synthesis-oriented
AI Analysis

This work addresses the problem of platform-specific performance tuning for developers, but it is incremental as it builds on existing directive-based approaches.

The paper explores the design of loop-transformation pragmas for future OpenMP specifications to simplify performance optimization across platforms, demonstrating their usefulness with a prototype implementation in Clang on benchmarks.

Adding a pragma directive into the source code is arguably easier than rewriting it, for instance for loop unrolling. Moreover, if the application is maintained for multiple platforms, their difference in performance characteristics may require different code transformations. Code transformation directives allow replacing the directives depending on the platform, i.e. separation of code semantics and its performance optimization. In this paper, we explore the design space (syntax and semantics) of adding such directive into a future OpenMP specification. Using a prototype implementation in Clang, we demonstrate the usefulness of such directives on a few benchmarks.

Code Implementations1 repo
Foundations

The foundational work for this paper's niche, ranked by how specifically the neighbourhood builds on it — not by global fame.

Your Notes