YASK—Yet Another Stencil Kernel: A Framework for HPC Stencil Code-Generation and Tuning
Citations Over TimeTop 10% of 2016 papers
Abstract
Stencil computation is an important class of algorithms used in a large variety of scientific-simulation applications. While the code for many problems can certainly be written in a straightforward manner in a high-level language, this often results in sub-optimal performance on modern computing platforms. On the other hand, adding advanced optimizations such as multi-level loop interchanges and vector-folding allows the code to perform better, but at the expense of reducing readability, maintainability, and portability. This paper describes the YASK (Yet Another Stencil Kernel) framework that simplifies the tasks of defining stencil functions, generating high-performance code targeted especially for Intel® Xeon® and Intel® Xeon Phi™ processors, and running tuning experiments. The features of the framework are described, including domain-specific-languages (DSLs), code generators for stencil-equation and loop code, and a genetic-algorithm-based automated tuning tool. Two practical use-cases are illustrated with real-world examples: the standalone YASK kernel is used to tune an isotropic 3D finitedifference stencil, and the generated YASK code is integrated into an external earthquake simulator.
Related Papers
- → The Vectorization of the Tersoff Multi-body Potential: An Exercise in Performance Portability(2016)30 cited
- → On the GPU-CPU Performance Portability of OpenCL for 3D Stencil Computations(2013)3 cited
- → Simulating stencil-based application on future Xeon Phi processor(2015)2 cited
- → High Performance Stencil Computations for Intel $$^{\normalsize \circledR }$$ Xeon Phi™ Coprocessor(2016)1 cited
- → The Vectorization of the Tersoff Multi-Body Potential: An Exercise in Performance Portability(2016)