Skip to content

Pystencils 2.0

Daniel Bauer requested to merge bauerd/backend-rework into main
  • Fixes #18.
  • Fixes #1.
  • Fixes #28.
  • Fixes the non-determinism issue in the NonlinearDiffusionNewtonGalerkin operator.

Bases the operator generation on the new pystencils backend (to be released as version 2.0) and gets rid of our own fork. The new backend is significantly more efficient, less prone to bugs, and easily extensible. Vectorized code is also properly typed, which means that we do not need any stunts in our blending kernels to compute the quadrature points from the loop counters.

Includes some additional quality improvements:

  • Refactors the loop strategies to be stateless and such that all the magic happens in a single function.
  • Removes the HOGType class because that was nothing more than boilerplate code.
  • Improves a few docstrings.
  • Removes many unused imports.
  • Includes pystencils in static type checking.

Some (mostly) unused features are removed with the idea that they will be reimplemented more generally in the future:

  • Loop strategy FUSEDROWS: To be reimplemented as a special case of general blocking (much like CUBES).
  • Optimizations reduce_reuse_dist and elimtmps_and_reorder.
Edited by Daniel Bauer

Merge request reports