Skip to content

feat[cartesian]: Loops over data dimensions#2686

Open
stubbiali wants to merge 40 commits into
GridTools:mainfrom
stubbiali:loops-over-data-dims
Open

feat[cartesian]: Loops over data dimensions#2686
stubbiali wants to merge 40 commits into
GridTools:mainfrom
stubbiali:loops-over-data-dims

Conversation

@stubbiali

Copy link
Copy Markdown
Contributor

This PR prototypes for-loops over data (i.e. static-sized) dimensions, easing the implementation of compute patterns ubiquitous in radiation and land surface parametrizations.

  • Support is implemented for all backends.
  • Allow calling functions from withing a for-loop and writing a for-loop within a function.
  • Because fields with data dimensions must be allocated upfront, functions can now modify fields in-place and not return anything, so avoiding aliasing/copying larger high-dimensional arrays.

TODO:

  • Unit tests

Ideas:

  • Add new concept for functions without any return statement
  • Allow defining higher-dimensional temporaries inside stencils

stubbiali and others added 30 commits October 3, 2024 18:14
stubbiali and others added 10 commits May 22, 2025 09:46
…s-on-main

# Conflicts:
#	src/gt4py/cartesian/config.py
#	src/gt4py/cartesian/frontend/defir_to_gtir.py
#	src/gt4py/cartesian/frontend/gtscript_frontend.py
#	src/gt4py/cartesian/frontend/nodes.py
#	src/gt4py/cartesian/gtc/common.py
#	src/gt4py/cartesian/gtc/cuir/cuir_codegen.py
#	src/gt4py/cartesian/gtc/dace/daceir.py
#	src/gt4py/cartesian/gtc/dace/expansion/daceir_builder.py
#	src/gt4py/cartesian/gtc/dace/expansion/tasklet_codegen.py
#	src/gt4py/cartesian/gtc/dace/utils.py
#	src/gt4py/cartesian/gtc/gtcpp/gtcpp_codegen.py
#	src/gt4py/cartesian/gtc/numpy/npir.py
#	src/gt4py/cartesian/gtc/numpy/npir_codegen.py
#	src/gt4py/cartesian/gtc/numpy/oir_to_npir.py
#	src/gt4py/cartesian/gtc/passes/gtir_upcaster.py
#	src/gt4py/cartesian/gtc/ufuncs.py
#	src/gt4py/cartesian/gtscript.py
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants