一句话:提出分段简化方法,利用所有可用重用,使多面体归约达到最小渐近复杂度。
归约将输入集合与结合且通常可交换的运算符组合以产生结果集合;当同一输入贡献多个输出时,可复用部分结果,从而简化归约并降低渐近复杂度。多面体程序中的归约虽可自动简化,但已有方法无法利用全部可用重用。本文解决这一长期开放问题,提出对先前简化工作的扩展,以支持任意独立可交换归约。核心思想是分段简化:将任意归约拆分为若干片段,再独立简化每片。由于此类分段变换通常涉及无限多选择,作者给出构造性证明以处理该困难,并选出有限数量片段进行简化。结果使简化后程序达到最小渐近复杂度。
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.
DOI 原文 · arXiv · PDF(开放获取) · DBLP
@article{NarmourYR25,
title = {Maximal Simplification of Polyhedral Reductions},
author = {Louis Narmour and Tomofumi Yuki and Sanjay Rajopadhye},
journal = {Proceedings of the ACM on Programming Languages},
volume = {9},
number = {POPL},
year = {2025},
doi = {10.1145/3704839}
}