Simplifying Dependent Reductions in the Polyhedral Model
Cambridge Yang, Eric Atkinson, Michael Carbin

TL;DR
This paper introduces a formal approach and heuristic algorithm for optimizing dependent reductions in the polyhedral model, significantly improving performance in probabilistic inference applications.
Contribution
It formalizes the optimization of dependent reductions as an integer bilinear program and presents a heuristic that preserves data dependences while simplifying reductions.
Findings
Optimal complexity achieved for benchmark programs
Significant complexity reductions, up to factors of 10^6
Speedups in wall-clock time from 1.1x to over 10^6x
Abstract
A Reduction -- an accumulation over a set of values, using an associative and commutative operator -- is a common computation in many numerical computations, including scientific computations, machine learning, computer vision, and financial analytics. Contemporary polyhedral-based compilation techniques make it possible to optimize reductions, such as prefix sums, in which each component of the reduction's output potentially shares computation with another component in the reduction. Therefore an optimizing compiler can identify the computation shared between multiple components and generate code that computes the shared computation only once. These techniques, however, do not support reductions that -- when phrased in the language of the polyhedral model -- span multiple dependent statements. In such cases, existing approaches can generate incorrect code that violates the data…
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.
