A Priori Loop Nest Normalization: Automatic Loop Scheduling in Complex Applications
Lukas Tr\"umper, Philipp Schaad, Berke Ates, Alexandru Calotoiu,, Marcin Copik, Torsten Hoefler

TL;DR
This paper introduces a normalization technique for loop nests that aligns different loop structures into a canonical form, enabling more effective optimization and significant performance improvements across various applications and languages.
Contribution
It proposes a priori loop nest normalization that standardizes loop structures, facilitating universal optimization strategies and improving performance in diverse programming environments.
Findings
Achieved an average 21.13x speedup over baseline C compiler.
Outperformed state-of-the-art auto-schedulers by factors of 2.31 and 2.89.
Realized a 10% speedup in a cloud microphysics application.
Abstract
The same computations are often expressed differently across software projects and programming languages. In particular, how computations involving loops are expressed varies due to the many possibilities to permute and compose loops. Since each variant may have unique performance properties, automatic approaches to loop scheduling must support many different optimization recipes. In this paper, we propose a priori loop nest normalization to align loop nests and reduce the variation before the optimization. Specifically, we define and apply normalization criteria, mapping loop nests with different memory access patterns to the same canonical form. Since the memory access pattern is susceptible to loop variations and critical for performance, this normalization allows many loop nests to be optimized by the same optimization recipe. To evaluate our approach, we apply the normalization…
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.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsEmbedded Systems Design Techniques · Parallel Computing and Optimization Techniques · Real-Time Systems Scheduling
