Simplifying dependent reductions in the polyhedral model
Cambridge Yang, Eric Atkinson, Michael Carbin
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 dependences of the original, unoptimized program. In this work, we identify and formalize the optimization of dependent reductions as an integer bilinear program. We present a heuristic optimization algorithm that uses an affine sequential schedule of the program to determine how to simplfy reductions yet still preserve the program’s dependences. We demonstrate that the algorithm provides optimal complexity for a set of benchmark programs from the literature on probabilistic inference algorithms, whose performance critically relies on simplifying these reductions. The complexities for 10 of the 11 programs improve siginifcantly by factors at least of the sizes of the input data, which are in the range of 10 4 to 10 6 for typical real application inputs. We also confirm the significance of the improvement by showing speedups in wall-clock time that range from 1.1x to over 10 6 x.
Ask about this paper
Your agent reads all of it.
Lune indexed this paper to the last equation, along with the top-tier papers that cite it. Ask a question and the answer quotes them.
Your agent calls
Luneget_paper_fulltext
Free to start. No credit card required.
Terminal
Install the CLIlune papers fulltext fe8f5c6c-812f-4dfa-b852-df5cd3f06ab6Cited by top-tier papers2
- Compiling Recurrences over Dense and Sparse ArraysShiv Sundram, Muhammad Usman Tariq, Fredrik KjolstadOOPSLA 2024 · 2 citations
- Maximal Simplification of Polyhedral ReductionsLouis Narmour, Tomofumi Yuki, Sanjay V. RajopadhyePOPL 2025
Related papers
- Type Batched Program ReductionGolnaz Gharachorlu, Nick SumnerISSTA 2023 · 1 citation
- Reverse engineering for reduction parallelization via semiring polynomialsAkimasa Morihata, Shigeyuki SatoPLDI 2021 · 3 citations
- Fast linear programming through transprecision computing on small and sparse dataTobias Grosser, Theodoros Theodoridis, Maximilian Falkenstein, Arjun Pitchanathan et al.OOPSLA 2020 · 4 citations
- Scaling Package Queries to a Billion Tuples via Hierarchical Partitioning and Customized OptimizationAnh L. Mai, Pengyu Wang, Azza Abouzied, Matteo Brucato et al.VLDB 2024 · 9 citations
- Minimization of Dynamical Systems over MonoidsGeorgios Argyris, Alberto Lluch-Lafuente, Alexander Leguizamon-Robayo, Mirco Tribastone et al.LICS 2023 · 3 citations
