Architecture and performance of Devito, a system for automated stencil computation

07/09/2018
by   Fabio Luporini, et al.
Georgia Institute of Technology
ECMWF
Imperial College London
Intel
0

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 generating code, are presented. The effectiveness of such performance optimizations is demonstrated using operators drawn from seismic imaging applications.

READ FULL TEXT

page 1

page 2

page 3

page 4

12/26/2021

Automated Code Optimization with E-Graphs

This thesis proposes an advanced, generic and high-level code rewriting ...
06/27/2012

Utilizing Static Analysis and Code Generation to Accelerate Neural Networks

As datasets continue to grow, neural network (NN) applications are becom...
07/12/2017

Optimised finite difference computation from symbolic equations

Domain-specific high-productivity environments are playing an increasing...
10/20/2020

Temporal blocking of finite-difference stencil operators with sparse "off-the-grid" sources

Stencil kernels dominate a range of scientific applications, including s...
05/10/2017

TSFC: a structure-preserving form compiler

A form compiler takes a high-level description of the weak form of parti...
03/01/2020

High Performance Code Generation in MLIR: An Early Case Study with GEMM

This article is primarily meant to present an early case study on using ...
07/16/2023

ProtoX: A First Look

We present a first look at ProtoX, a code generation framework for stenc...

Please sign up or login with your details

Forgot password? Click here to reset