SCOPESLoopOpt: Declarative Transformations Made Easy
Despite years of research, the optimization strategy of loop-level optimization frameworks remains fragile when addressing modern and heterogeneous architectures. Furthermore, optimizers act as an opaque operation, a black-box, to the users, forcing them to tedious an error-prone manual optimization if imprecise cost models are used. Current solutions, to drive loop-level optimizers rely on pragmas or bake the transformations recipes in the source code using imperative embedded scripting. But, the optimization of programs via a sequence of imperative directives is unlikely to solve this problem fully as expressing optimization is still an error-prone and time-consuming task for the users. The ideal solution would be a declarative approach that allows the users to opt-in if the optimizer has made a poor optimization decision but avoid baking the transformation script within a given application or bind it to a particular loop nest. Based on such an idea, we propose LoopOpt, an interactive tool that enables users to design optimizations in partnership with the compiler in a declarative way. Thus, our approach opens the polyhedral black-box allowing users to design complex optimizations sequences in a declarative way.
Cite
@inbook{10.1145/3493229.3493301,
author = {Chelini, Lorenzo and Kong, Martin and Grosser, Tobias and Corporaal, Henk},
title = {LoopOpt: Declarative Transformations Made Easy},
booktitle = {Proceedings of the 24th International Workshop on Software and Compilers for Embedded Systems},
series = {SCOPES},
pages = {11–16},
year = {2021},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
url = {https://doi.org/10.1145/3493229.3493301},
isbn = {9781450391665}
}