Skip to content

feat[cartesian]: Loops over data dimensions - #2686

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

stubbiali wants to merge 62 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 30 commits May 23, 2025 13:49
…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
# Conflicts:
#	src/gt4py/cartesian/frontend/gtscript_frontend.py
This reverts commit 20d1bea.

# Conflicts:
#	src/gt4py/cartesian/gtc/dace/oir_to_treeir.py
#	tests/cartesian_tests/integration_tests/multi_feature_tests/test_code_generation.py
…ical loop (GridTools#2688)"

This reverts commit bd1e156.

# Conflicts:
#	src/gt4py/cartesian/gtc/dace/oir_to_treeir.py
#	src/gt4py/cartesian/gtc/dace/treeir.py
#	tests/cartesian_tests/integration_tests/multi_feature_tests/test_code_generation.py
…)"

This reverts commit e5805fd.

# Conflicts:
#	src/gt4py/cartesian/gtc/dace/oir_to_treeir.py

This branch has not been deployed

No deployments
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