{"title":"Polyhedral auto-transformation with no integer linear programming","authors":"Aravind Acharya, Uday Bondhugula, Albert Cohen","doi":"10.1145/3192366.3192401","DOIUrl":null,"url":null,"abstract":"State-of-the-art algorithms used in automatic polyhedral transformation for parallelization and locality optimization typically rely on Integer Linear Programming (ILP). This poses a scalability issue when scaling to tens or hundreds of statements, and may be disconcerting in production compiler settings. In this work, we consider relaxing integrality in the ILP formulation of the Pluto algorithm, a popular algorithm used to find good affine transformations. We show that the rational solutions obtained from the relaxed LP formulation can easily be scaled to valid integral ones to obtain desired solutions, although with some caveats. We first present formal results connecting the solution of the relaxed LP to the original Pluto ILP. We then show that there are difficulties in realizing the above theoretical results in practice, and propose an alternate approach to overcome those while still leveraging linear programming. Our new approach obtains dramatic compile-time speedups for a range of large benchmarks. While achieving these compile-time improvements, we show that the performance of the transformed code is not sacrificed. Our approach to automatic transformation provides a mean compilation time improvement of 5.6× over state-of-the-art on relevant challenging benchmarks from the NAS PB, SPEC CPU 2006, and PolyBench suites. We also came across situations where prior frameworks failed to find a transformation in a reasonable amount of time, while our new approach did so instantaneously.","PeriodicalId":20583,"journal":{"name":"Proceedings of the 39th ACM SIGPLAN Conference on Programming Language Design and Implementation","volume":"2 1","pages":""},"PeriodicalIF":0.0000,"publicationDate":"2018-06-11","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"13","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings of the 39th ACM SIGPLAN Conference on Programming Language Design and Implementation","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/3192366.3192401","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 13
Abstract
State-of-the-art algorithms used in automatic polyhedral transformation for parallelization and locality optimization typically rely on Integer Linear Programming (ILP). This poses a scalability issue when scaling to tens or hundreds of statements, and may be disconcerting in production compiler settings. In this work, we consider relaxing integrality in the ILP formulation of the Pluto algorithm, a popular algorithm used to find good affine transformations. We show that the rational solutions obtained from the relaxed LP formulation can easily be scaled to valid integral ones to obtain desired solutions, although with some caveats. We first present formal results connecting the solution of the relaxed LP to the original Pluto ILP. We then show that there are difficulties in realizing the above theoretical results in practice, and propose an alternate approach to overcome those while still leveraging linear programming. Our new approach obtains dramatic compile-time speedups for a range of large benchmarks. While achieving these compile-time improvements, we show that the performance of the transformed code is not sacrificed. Our approach to automatic transformation provides a mean compilation time improvement of 5.6× over state-of-the-art on relevant challenging benchmarks from the NAS PB, SPEC CPU 2006, and PolyBench suites. We also came across situations where prior frameworks failed to find a transformation in a reasonable amount of time, while our new approach did so instantaneously.
在自动多面体变换中用于并行化和局部优化的最先进算法通常依赖于整数线性规划(ILP)。当扩展到数十或数百条语句时,这会带来可伸缩性问题,并且在生产编译器设置中可能会令人不安。在这项工作中,我们考虑了冥王星算法的ILP公式中的松弛完整性,冥王星算法是一种常用的用于寻找好的仿射变换的算法。我们证明了从松弛的LP公式得到的有理解可以很容易地缩放到有效的积分解,以得到期望的解,尽管有一些注意事项。我们首先给出了将松弛LP的解与原始冥王星ILP联系起来的形式化结果。然后,我们表明在实践中实现上述理论结果存在困难,并提出了一种替代方法来克服这些困难,同时仍然利用线性规划。我们的新方法在一系列大型基准测试中获得了显著的编译时加速。在实现这些编译时改进的同时,我们展示了转换后的代码的性能并没有被牺牲。我们的自动转换方法在NAS PB、SPEC CPU 2006和PolyBench套件的相关具有挑战性的基准测试中提供了5.6倍的平均编译时间改进。我们还遇到了以前的框架无法在合理的时间内找到转换的情况,而我们的新方法可以立即找到转换。