Architecture and performance of Devito, a system for automated stencil computation
Fabio Luporini, Michael Lange, Mathias Louboutin, Navjot, Kukreja, Jan H\"uckelheim, Charles Yount, Philipp Witte, Paul H., J. Kelly, Felix J. Herrmann, Gerard J. Gorman

TL;DR
Devito is a Python-based framework that automates the generation of optimized code for stencil computations, significantly improving performance in high-performance computing applications like seismic imaging.
Contribution
This paper introduces the Devito compiler architecture and its optimization techniques for automated, high-performance stencil code generation from symbolic Python equations.
Findings
Demonstrated improved performance in seismic imaging operators
Integrated advanced optimizations like tiling and parallelization
Showed effectiveness of compiler optimizations in real-world applications
Abstract
Stencil computations are a key part of many high-performance computing applications, such as image processing, convolutional neural networks, and finite-difference solvers for partial differential equations. Devito is a framework capable of generating highly-optimized code given symbolic equations expressed in Python, specialized in, but not limited to, affine (stencil) codes. The lowering process---from mathematical equations down to C++ code---is performed by the Devito compiler through a series of intermediate representations. Several performance optimizations are introduced, including advanced common sub-expressions elimination, tiling and parallelization. Some of these are obtained through well-established stencil optimizers, integrated in the back-end of the Devito compiler. The architecture of the Devito compiler, as well as the performance optimizations that are applied when…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
