Maximal Simplification of Polyhedral Reductions
Louis Narmour, Tomofumi Yuki, Sanjay Rajopadhye
TL;DR
This work addresses automatically achieving maximal simplification of polyhedral reductions by exploiting reuse through piece-wise, affine splits. It extends prior GR06 methods with a formal framework of piece-wise simplification, equivalence partitioning of infinite reuse choices, and simplex-preserving SPB/SPI splits to guarantee termination. The central theoretical result shows any independent commutative reduction with accumulation space $a$ and reuse space $r$ can be transformed to reduce the asymptotic degree by $l = \min(a,r)$, with constructive proofs and a dynamic-programming algorithm. An accompanying artifact implements components of the approach, including reduction decompositions and splits, illustrating practical code-generation pathways, though full compiler integration and vectorization heuristics remain for future work. Overall, the paper provides a rigorous path toward automatically obtaining minimal asymptotic complexity for reductions in the polyhedral model, with potential significant performance gains in data-intensive applications.
Abstract
Reductions combine collections of input values with an associative and often commutative operator to produce collections of results. When the same input value contributes to multiple outputs, there is an opportunity to reuse partial results, enabling reduction simplification. Simplification often produces a program with lower asymptotic complexity. Typical compiler optimizations yield, at best, a constant fold speedup, but a complexity improvement from, say, cubic to quadratic complexity yields unbounded speedup for sufficiently large problems. It is well known that reductions in polyhedral programs may be simplified automatically, but previous methods cannot exploit all available reuse. This paper resolves this long-standing open problem, thereby attaining minimal asymptotic complexity in the simplified program. We propose extensions to prior work on simplification to support any independent commutative reduction. At the heart of our approach is piece-wise simplification, the notion that we can split an arbitrary reduction into pieces and then independently simplify each piece. However, the difficulty of using such piece-wise transformations is that they typically involve an infinite number of choices. We give constructive proofs to deal with this and select a finite number of pieces for simplification.
