Table of Contents
Fetching ...

Simplification of Polyhedral Reductions in Practice

Louis Narmour, Ryan Job, Tomofumi Yuki, Sanjay Rajopadhye

TL;DR

This work provides the first complete push-button implementation of reduction simplification in a compiler, and shows that simplification rediscovers several key results in algorithmic improvement across multiple domains, previously only obtained through clever manual human analysis and effort.

Abstract

Reductions combine collections of inputs with an associative (and here, also commutative) operator to produce collections of outputs. When the same value contributes to multiple outputs, there is an opportunity to reuse partial results, enabling reduction simplification. We provide the first complete push-button implementation of reduction simplification in a compiler. We evaluate its effectiveness on a range of real-world applications, and show that simplification rediscovers several key results in algorithmic improvement across multiple domains, previously only obtained through clever manual human analysis and effort. We also discover alternate, previously unknown algorithms, albeit without improving the asymptotic complexity.

Simplification of Polyhedral Reductions in Practice

TL;DR

This work provides the first complete push-button implementation of reduction simplification in a compiler, and shows that simplification rediscovers several key results in algorithmic improvement across multiple domains, previously only obtained through clever manual human analysis and effort.

Abstract

Reductions combine collections of inputs with an associative (and here, also commutative) operator to produce collections of outputs. When the same value contributes to multiple outputs, there is an opportunity to reuse partial results, enabling reduction simplification. We provide the first complete push-button implementation of reduction simplification in a compiler. We evaluate its effectiveness on a range of real-world applications, and show that simplification rediscovers several key results in algorithmic improvement across multiple domains, previously only obtained through clever manual human analysis and effort. We also discover alternate, previously unknown algorithms, albeit without improving the asymptotic complexity.

Paper Structure

This paper contains 30 sections, 33 equations, 7 figures, 3 tables.

Figures (7)

  • Figure 1: ABFT checksums, (from Huang and Abraham huang_algorithm-based_1984).
  • Figure 2: Face lattice of $\mathcal{D}_{1}$ in Equation \ref{['eq:face-lattice-2d']}, the square with four edges (1-faces) and four vertices (0-faces) is shown on the left and $\mathcal{D}_{2}$ in Equation \ref{['eq:face-lattice-1d']}, the thick line segment with two vertices (0-faces) on the right.
  • Figure 3: Simplification of a quadratic equation (computation defined over a triangle) to a linear complexity (the residual computation is defined only over the points in the bottom row).
  • Figure 4: Equivalence classes explored for the single-step simplification of Equation \ref{['eq:reduction-equiv-classes']}, with $\oplus$-faces highlighted in red, $\ominus$-faces in blue, and $\oslash$-faces not highlighted.
  • Figure 5: Alpha to C compilation pipeline.
  • ...and 2 more figures