Abstract
Stencil computations are widely used from physical simulations to machine-learning. They are embarrassingly parallel and perfectly fit modern hardware such as Graphic Processing Units. Although stencil computations have been extensively studied, optimizing them for increasingly diverse hardware remains challenging. Domain Specific Languages (DSLs) have raised the programming abstraction and offer good performance. However, this places the burden on DSL implementers who have to write almost
full-fledged parallelizing compilers and optimizers. LIFT has recently emerged as a promising approach to achieve performance portability and is based on a small set of reusable parallel primitives that DSL or library writers can build upon. LIFT’s key novelty is in its encoding of optimizations as a system of extensible rewrite rules which are used to explore the optimization space. However, LIFT has mostly focused on linear algebra operations and it remains to be seen whether this approach is applicable for other domains. This paper demonstrates how complex multidimensional stencil code and optimizations such as tiling are expressible using compositions of simple 1D LIFT primitives. By leveraging existing LIFT primitives and optimizations, we only require the addition of two primitives and one rewrite rule to do so. Our results show that this approach outperforms existing compiler approaches and hand-tuned codes.
full-fledged parallelizing compilers and optimizers. LIFT has recently emerged as a promising approach to achieve performance portability and is based on a small set of reusable parallel primitives that DSL or library writers can build upon. LIFT’s key novelty is in its encoding of optimizations as a system of extensible rewrite rules which are used to explore the optimization space. However, LIFT has mostly focused on linear algebra operations and it remains to be seen whether this approach is applicable for other domains. This paper demonstrates how complex multidimensional stencil code and optimizations such as tiling are expressible using compositions of simple 1D LIFT primitives. By leveraging existing LIFT primitives and optimizations, we only require the addition of two primitives and one rewrite rule to do so. Our results show that this approach outperforms existing compiler approaches and hand-tuned codes.
Original language | English |
---|---|
Title of host publication | Proceedings of the 2018 International Symposium on Code Generation and Optimization |
Publisher | ACM |
Pages | 100-112 |
Number of pages | 13 |
ISBN (Electronic) | 978-1-4503-5617-6 |
DOIs | |
Publication status | Published - 24 Feb 2018 |
Event | International Symposium on Code Generation and Optimization GCO 2018 - Vienna, Austria Duration: 24 Feb 2018 → 28 Feb 2018 http://cgo.org/cgo2018/ |
Publication series
Name | International Symposium on Code Generation and Optimization |
---|---|
Publisher | ACM |
ISSN (Electronic) | 2164-2397 |
Conference
Conference | International Symposium on Code Generation and Optimization GCO 2018 |
---|---|
Country/Territory | Austria |
City | Vienna |
Period | 24/02/18 → 28/02/18 |
Internet address |
Fingerprint
Dive into the research topics of 'High Performance Stencil Code Generation with LIFT'. Together they form a unique fingerprint.Profiles
-
Michel Steuwer
- School of Informatics - Lecturer in Compilers and Runtime Systems
- Institute for Computing Systems Architecture
- Computer Systems
Person: Academic: Research Active