Declarative Loop Tactics for Domain-specific Optimization

被引:10
作者
Chelini, Lorenzo [1 ,2 ]
Zinenko, Oleksandr [3 ]
Grosser, Tobias [4 ]
Corporaal, Henk [1 ]
机构
[1] Eindhoven Univ Technol, Eindhoven, Netherlands
[2] IBM Res Zurich, Zurich, Switzerland
[3] INRIA, Rocquencourt, France
[4] Swiss Fed Inst Technol, Zurich, Switzerland
基金
欧盟地平线“2020”; 瑞士国家科学基金会;
关键词
Loop tactics; polyhedral model; declarative loop optimizations; LANGUAGE; PARALLELISM; RECOGNITION; COMPILER;
D O I
10.1145/3372266
中图分类号
TP3 [计算技术、计算机技术];
学科分类号
0812 ;
摘要
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.
引用
收藏
页数:25
相关论文
共 58 条
[1]  
Abadi M, 2016, PROCEEDINGS OF OSDI'16: 12TH USENIX SYMPOSIUM ON OPERATING SYSTEMS DESIGN AND IMPLEMENTATION, P265
[2]  
Agrawal V, 2015, ACM SIGPLAN NOTICES, V50, P691, DOI [10.1145/2694344.2694392, 10.1145/2775054.2694392]
[3]   Optimal operating room scheduling for normal and unexpected events in a smart hospital [J].
Al-Refaie, Abbas ;
Chen, Toly ;
Judeh, Mays .
OPERATIONAL RESEARCH, 2018, 18 (03) :579-602
[4]   XARK: An EXtensible Framework for Automatic Recognition of Computational Kernels [J].
Arenaz, Manuel ;
Tourino, Juan ;
Doallo, Ramon .
ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 2008, 30 (06)
[5]   Opening Polyhedral Compiler's Black Box [J].
Bagneres, Lenaic ;
Zinenko, Oleksandr ;
Huot, Stephane ;
Bastoul, Cedric .
PROCEEDINGS OF CGO 2016: THE 14TH INTERNATIONAL SYMPOSIUM ON CODE GENERATION AND OPTIMIZATION, 2016, :128-138
[6]   A Model for Fusion and Code Motion in an Automatic Parallelizing Compiler [J].
Bondhugula, Uday ;
Gunluk, Oktay ;
Dash, Sanjeeb ;
Renganarayanan, Lakshminarayanan .
PACT 2010: PROCEEDINGS OF THE NINETEENTH INTERNATIONAL CONFERENCE ON PARALLEL ARCHITECTURES AND COMPILATION TECHNIQUES, 2010, :343-352
[7]   A Practical Automatic Polyhedral Parallelizer and Locality Optimizer [J].
Bondhugula, Uday ;
Hartono, Albert ;
Ramanujam, J. ;
Sadayappan, R. .
PLDI'08: PROCEEDINGS OF THE 2008 SIGPLAN CONFERENCE ON PROGRAMMING LANGUAGE DESIGN & IMPLEMENTATION, 2008, :101-+
[8]  
Bondhugula Uday, 2008, P ACM SIGPLAN S PROG
[9]   Stratego/XT 0.17. A language and toolset for program transformation [J].
Bravenboer, Martin ;
Kalleberg, Karl Trygve ;
Vermaas, Rob ;
Visser, Eelco .
SCIENCE OF COMPUTER PROGRAMMING, 2008, 72 (1-2) :52-70
[10]  
Chen Chun, 2008, TECHNICAL REPORT