TL;DR
This paper explores the design of pragma directives for loop transformations in OpenMP, enabling platform-specific optimizations through source code annotations, demonstrated with a prototype in Clang on benchmark tests.
Contribution
It proposes a new syntax and semantics for loop-transformation pragmas in OpenMP, facilitating flexible, platform-dependent code optimization.
Findings
Pragmas improve code performance across platforms.
Prototype implementation in Clang validates the approach.
Demonstrated benefits on selected benchmarks.
Abstract
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.
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
