Skip to main content
U.S. Department of Energy
Office of Scientific and Technical Information

Snowflake: A Lightweight Portable Stencil DSL

Journal Article · · Proceedings - 2017 IEEE 31st International Parallel and Distributed Processing Symposium Workshops, IPDPSW 2017
 [1];  [1];  [1];  [2];  [2];  [1]
  1. Univ. of California, Berkeley, CA (United States). Dept. of Electrical Engineering and Computer Science
  2. Lawrence Berkeley National Lab. (LBNL), Berkeley, CA (United States). Computational Research Division

Stencil computations are not well optimized by general-purpose production compilers and the increased use of multicore, manycore, and accelerator-based systems makes the optimization problem even more challenging. In this paper we present Snowflake, a Domain Specific Language (DSL) for stencils that uses a 'micro-compiler' approach, i.e., small, focused, domain-specific code generators. The approach is similar to that used in image processing stencils, but Snowflake handles the much more complex stencils that arise in scientific computing, including complex boundary conditions, higher-order operators (larger stencils), higher dimensions, variable coefficients, non-unit-stride iteration spaces, and multiple input or output meshes. Snowflake is embedded in the Python language, allowing it to interoperate with popular scientific tools like SciPy and iPython; it also takes advantage of built-in Python libraries for powerful dependence analysis as part of a just-in-time compiler. We demonstrate the power of the Snowflake language and the micro-compiler approach with a complex scientific benchmark, HPGMG, that exercises the generality of stencil support in Snowflake. By generating OpenMP comparable to, and OpenCL within a factor of 2x of hand-optimized HPGMG, Snowflake demonstrates that a micro-compiler can support diverse processor architectures and is performance-competitive whilst preserving a high-level Python implementation.

Research Organization:
Lawrence Berkeley National Laboratory (LBNL), Berkeley, CA (United States)
Sponsoring Organization:
USDOE Office of Science (SC), Advanced Scientific Computing Research (ASCR) (SC-21); Defense Advanced Research Projects Agency (DARPA)
Grant/Contract Number:
AC02-05CH11231
OSTI ID:
1379895
Journal Information:
Proceedings - 2017 IEEE 31st International Parallel and Distributed Processing Symposium Workshops, IPDPSW 2017, Journal Name: Proceedings - 2017 IEEE 31st International Parallel and Distributed Processing Symposium Workshops, IPDPSW 2017
Country of Publication:
United States
Language:
English

Similar Records

Using Verified Lifting to Optimize Legacy Stencil Codes (Final Project Report)
Technical Report · Tue Feb 09 23:00:00 EST 2021 · OSTI ID:1765083

Helium: lifting high-performance stencil kernels from stripped x86 binaries to halide DSL code
Journal Article · Wed Jun 03 00:00:00 EDT 2015 · ACM SIGPLAN Notices · OSTI ID:1457399

Automatic Differentiation for Adjoint Stencil Loops
Conference · Mon Dec 31 23:00:00 EST 2018 · OSTI ID:1574311