Declarative Loop Tactics for Domain-specific Optimization

Lorenzo Chelini, Oleksandr Zinenko, Tobias Grosser, Henk Corporaal

Research output: Contribution to journalArticlepeer-review

Abstract

Increasingly complex hardware makes the design of effective compilers difficult. To reduce this problem, we introduce Declarative Loop Tactics, which is a novel framework of composable program transformations based on an internal tree-like program representation of a polyhedral compiler. The framework is based on a declarative C++ API built around easy-to-program matchers and builders, which provide the foundation to develop loop optimization strategies. Using our matchers and builders, we express computational patterns and core building blocks, such as loop tiling, fusion, and data-layout transformations, and compose them into algorithm-specific optimizations. Declarative Loop Tactics (Loop Tactics for short) can be applied to many domains. For two of them, stencils and linear algebra, we show how developers can express sophisticated domain-specific optimizations as a set of composable transformations or calls to optimized libraries. By allowing developers to add highly customized optimizations for a given computational pattern, we expect our approach to reduce the need for DSLs and to extend the range of optimizations that can be performed by a current general-purpose compiler.
Original languageEnglish
Pages (from-to)1-25
Number of pages25
JournalACM Transactions on Architecture and Code Optimization
Volume16
Issue number4
DOIs
Publication statusPublished - 26 Dec 2019

Fingerprint Dive into the research topics of 'Declarative Loop Tactics for Domain-specific Optimization'. Together they form a unique fingerprint.

Cite this