一句话:提出 UniRec,一个统一嵌套递归与完美嵌套循环调度变换、并推广幺模框架的类幺模框架。
调度变换通过重排程序操作来改善局部性与并行性。针对嵌套循环,已有成熟的循环变换框架(如多面体模型和幺模框架)可组合并施加实例级变换;但面向嵌套递归与循环的既有框架表示过于受限,无法发挥循环嵌套变换的全部能力。本文提出 UniRec,一个类幺模框架,用于推理和组合嵌套递归与循环上的调度变换。UniRec 不仅推广了先前的递归变换框架,也推广了幺模框架,从而统一了完美嵌套循环与递归的变换推理。摘要未报告实验评估,主要贡献体现在框架的统一性与表达能力上。
Scheduling transformations reorder operations in a program to improve locality and/or parallelism. There are mature loop transformation frameworks such as the polyhedral model for composing and applying instance-wise scheduling transformations for loop nests.In recent years, there have been efforts to build frameworks for composing and applying scheduling transformations for nested recursion and loops, but these frameworks cannot employ the full power of transformations for loop nests since they have overly-restrictive representations. This paper describes a new framework, UniRec, that not only generalizes prior frameworks for reasoning about transformations on recursion, but also generalizes the unimodular framework, and hence unifies reasoning about perfectly-nested loops and recursion.
@article{paperbot1444,
title = {UniRec: a unimodular-like framework for nested recursions and loops},
author = {Kirshanthan Sundararajah and Charitha Saumya and Milind Kulkarni},
journal = {Proceedings of the ACM on Programming Languages},
volume = {6},
number = {OOPSLA2},
year = {2022},
doi = {10.1145/3563333}
}