diff --git a/model/atmosphere/advection/pyproject.toml b/model/atmosphere/advection/pyproject.toml index 86aaa63dec..10b8f80533 100644 --- a/model/atmosphere/advection/pyproject.toml +++ b/model/atmosphere/advection/pyproject.toml @@ -26,7 +26,7 @@ dependencies = [ # workspace members "icon4py-common>=0.0.6", # external dependencies - "gt4py==1.1.3", + "gt4py==1.1.4", 'packaging>=20.0' ] description = "ICON advection." diff --git a/model/atmosphere/diffusion/pyproject.toml b/model/atmosphere/diffusion/pyproject.toml index 32da1dc443..2621e5e056 100644 --- a/model/atmosphere/diffusion/pyproject.toml +++ b/model/atmosphere/diffusion/pyproject.toml @@ -26,7 +26,7 @@ dependencies = [ # workspace members "icon4py-common>=0.0.6", # external dependencies - "gt4py==1.1.3", + "gt4py==1.1.4", 'packaging>=20.0' ] description = "ICON diffusion." diff --git a/model/atmosphere/dycore/pyproject.toml b/model/atmosphere/dycore/pyproject.toml index 91568b3d71..8b568950d4 100644 --- a/model/atmosphere/dycore/pyproject.toml +++ b/model/atmosphere/dycore/pyproject.toml @@ -26,7 +26,7 @@ dependencies = [ # workspace members "icon4py-common>=0.0.6", # external dependencies - "gt4py==1.1.3", + "gt4py==1.1.4", 'packaging>=20.0' ] description = "ICON dynamical core." diff --git a/model/atmosphere/subgrid_scale_physics/microphysics/pyproject.toml b/model/atmosphere/subgrid_scale_physics/microphysics/pyproject.toml index 3625ef8885..a6ef5ddaec 100644 --- a/model/atmosphere/subgrid_scale_physics/microphysics/pyproject.toml +++ b/model/atmosphere/subgrid_scale_physics/microphysics/pyproject.toml @@ -26,7 +26,7 @@ dependencies = [ # workspace members "icon4py-common>=0.0.6", # external dependencies - "gt4py==1.1.3", + "gt4py==1.1.4", 'packaging>=20.0' ] description = "ICON microphysics." diff --git a/model/atmosphere/subgrid_scale_physics/muphys/pyproject.toml b/model/atmosphere/subgrid_scale_physics/muphys/pyproject.toml index e7728ec7a5..ccf4c4ef3d 100644 --- a/model/atmosphere/subgrid_scale_physics/muphys/pyproject.toml +++ b/model/atmosphere/subgrid_scale_physics/muphys/pyproject.toml @@ -25,8 +25,7 @@ dependencies = [ # workspace members "icon4py-common[io]>=0.0.6", # external dependencies - "numpy>=1.23.3", - "gt4py==1.1.3", + "gt4py==1.1.4", "packaging>=20.0" ] description = "ICON subgrid scale muphys parameterization." diff --git a/model/atmosphere/subgrid_scale_physics/muphys/src/icon4py/model/atmosphere/subgrid_scale_physics/muphys/driver/run_graupel_only.py b/model/atmosphere/subgrid_scale_physics/muphys/src/icon4py/model/atmosphere/subgrid_scale_physics/muphys/driver/run_graupel_only.py index 86622c26ee..ac3084b41c 100755 --- a/model/atmosphere/subgrid_scale_physics/muphys/src/icon4py/model/atmosphere/subgrid_scale_physics/muphys/driver/run_graupel_only.py +++ b/model/atmosphere/subgrid_scale_physics/muphys/src/icon4py/model/atmosphere/subgrid_scale_physics/muphys/driver/run_graupel_only.py @@ -14,7 +14,8 @@ import time from gt4py import next as gtx -from gt4py.next import config as gtx_config, metrics as gtx_metrics +from gt4py.next import config as gtx_config +from gt4py.next.instrumentation import metrics as gtx_metrics from icon4py.model.atmosphere.subgrid_scale_physics.muphys.driver import common, utils from icon4py.model.atmosphere.subgrid_scale_physics.muphys.implementations import graupel diff --git a/model/common/pyproject.toml b/model/common/pyproject.toml index 7696ae33ef..906cf327f0 100644 --- a/model/common/pyproject.toml +++ b/model/common/pyproject.toml @@ -23,7 +23,7 @@ classifiers = [ 'Topic :: Scientific/Engineering :: Physics' ] dependencies = [ - 'gt4py==1.1.3', + 'gt4py==1.1.4', 'packaging>=20.0', 'typing-extensions>=4.11.0', 'numpy>=1.23.3', diff --git a/model/common/src/icon4py/model/common/model_options.py b/model/common/src/icon4py/model/common/model_options.py index 3170a69079..2c2a10e2e2 100644 --- a/model/common/src/icon4py/model/common/model_options.py +++ b/model/common/src/icon4py/model/common/model_options.py @@ -56,6 +56,7 @@ def get_dace_options( backend_descriptor["use_zero_origin"] = True optimization_args["gpu_memory_pool"] = False optimization_args["make_persistent"] = True + optimization_args["fuse_tasklets"] = True if optimization_hooks: optimization_args["optimization_hooks"] = optimization_hooks if optimization_args: diff --git a/model/driver/pyproject.toml b/model/driver/pyproject.toml index e8e505b358..15590b27e3 100644 --- a/model/driver/pyproject.toml +++ b/model/driver/pyproject.toml @@ -31,7 +31,7 @@ dependencies = [ # external dependencies "click>=8.0.1", "devtools>=0.12", - "gt4py==1.1.3", + "gt4py==1.1.4", "packaging>=20.0", "numpy>=1.23.3" ] diff --git a/model/driver/src/icon4py/model/driver/icon4py_configuration.py b/model/driver/src/icon4py/model/driver/icon4py_configuration.py index 0a5644c449..d9260af750 100644 --- a/model/driver/src/icon4py/model/driver/icon4py_configuration.py +++ b/model/driver/src/icon4py/model/driver/icon4py_configuration.py @@ -10,7 +10,7 @@ import functools import logging -from gt4py.next import metrics as gtx_metrics +from gt4py.next.instrumentation import metrics as gtx_metrics from icon4py.model.atmosphere.diffusion import diffusion from icon4py.model.atmosphere.dycore import dycore_states, solve_nonhydro as solve_nh diff --git a/model/driver/src/icon4py/model/driver/icon4py_driver.py b/model/driver/src/icon4py/model/driver/icon4py_driver.py index d54768ee7b..8405fad163 100644 --- a/model/driver/src/icon4py/model/driver/icon4py_driver.py +++ b/model/driver/src/icon4py/model/driver/icon4py_driver.py @@ -15,7 +15,8 @@ import click import numpy as np from devtools import Timer -from gt4py.next import config as gtx_config, metrics as gtx_metrics, typing as gtx_typing +from gt4py.next import config as gtx_config, typing as gtx_typing +from gt4py.next.instrumentation import metrics as gtx_metrics import icon4py.model.common.utils as common_utils from icon4py.model.atmosphere.diffusion import diffusion, diffusion_states diff --git a/model/standalone_driver/pyproject.toml b/model/standalone_driver/pyproject.toml index e5f8bcd906..4aa4dfd799 100644 --- a/model/standalone_driver/pyproject.toml +++ b/model/standalone_driver/pyproject.toml @@ -31,7 +31,7 @@ dependencies = [ # external dependencies "typer>=0.20.0", "devtools>=0.12", - "gt4py==1.1.3", + "gt4py==1.1.4", "packaging>=20.0", "numpy>=1.23.3" ] diff --git a/model/standalone_driver/src/icon4py/model/standalone_driver/config.py b/model/standalone_driver/src/icon4py/model/standalone_driver/config.py index fe627751b1..b016af5576 100644 --- a/model/standalone_driver/src/icon4py/model/standalone_driver/config.py +++ b/model/standalone_driver/src/icon4py/model/standalone_driver/config.py @@ -10,7 +10,7 @@ import datetime import pathlib -from gt4py.next import metrics as gtx_metrics +from gt4py.next.instrumentation import metrics as gtx_metrics from icon4py.model.common import type_alias as ta diff --git a/model/standalone_driver/src/icon4py/model/standalone_driver/standalone_driver.py b/model/standalone_driver/src/icon4py/model/standalone_driver/standalone_driver.py index 37b9052bd2..9836e8d7f6 100644 --- a/model/standalone_driver/src/icon4py/model/standalone_driver/standalone_driver.py +++ b/model/standalone_driver/src/icon4py/model/standalone_driver/standalone_driver.py @@ -13,7 +13,8 @@ from collections.abc import Callable import gt4py.next as gtx -from gt4py.next import config as gtx_config, metrics as gtx_metrics +from gt4py.next import config as gtx_config +from gt4py.next.instrumentation import metrics as gtx_metrics import icon4py.model.common.utils as common_utils from icon4py.model.atmosphere.diffusion import diffusion, diffusion_states diff --git a/model/testing/pyproject.toml b/model/testing/pyproject.toml index bedc1a0b58..9d7b94d752 100644 --- a/model/testing/pyproject.toml +++ b/model/testing/pyproject.toml @@ -27,7 +27,7 @@ dependencies = [ 'icon4py-common[io]>=0.0.6', # external dependencies "filelock>=3.18.0", - "gt4py==1.1.3", + "gt4py==1.1.4", "numpy>=1.23.3", 'packaging>=20.0', "pytest>=8.0.1", diff --git a/model/testing/src/icon4py/model/testing/stencil_tests.py b/model/testing/src/icon4py/model/testing/stencil_tests.py index ad1bf5e0ac..40b150987d 100644 --- a/model/testing/src/icon4py/model/testing/stencil_tests.py +++ b/model/testing/src/icon4py/model/testing/stencil_tests.py @@ -20,13 +20,13 @@ from gt4py.next import ( config as gtx_config, constructors, - metrics as gtx_metrics, named_collections as gtx_named_collections, typing as gtx_typing, ) # TODO(havogt): import will disappear after FieldOperators support `.compile` from gt4py.next.ffront.decorator import FieldOperator +from gt4py.next.instrumentation import metrics as gtx_metrics from icon4py.model.common import model_backends, model_options from icon4py.model.common.grid import base diff --git a/pyproject.toml b/pyproject.toml index e349356eb7..15da24a4e9 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -362,7 +362,7 @@ url = 'https://gridtools.github.io/pypi/' [tool.uv.sources] dace = {index = "gridtools"} ghex = {git = "https://github.com/msimberg/GHEX.git", branch = "async-mpi"} -# gt4py = {git = "https://github.com/GridTools/gt4py", branch = "main"} +gt4py = {git = "https://github.com/GridTools/gt4py", branch = "muphys_staging"} # gt4py = {index = "test.pypi"} icon4py-atmosphere-advection = {workspace = true} icon4py-atmosphere-diffusion = {workspace = true} diff --git a/tools/pyproject.toml b/tools/pyproject.toml index 49650e7379..e577df455c 100644 --- a/tools/pyproject.toml +++ b/tools/pyproject.toml @@ -30,7 +30,7 @@ dependencies = [ 'icon4py-common>=0.0.6', # external dependencies 'cffi>=1.5', - 'gt4py==1.1.3', + 'gt4py==1.1.4', "numpy>=1.23.3", 'packaging>=20.0', 'click>=8.1.7', diff --git a/tools/src/icon4py/tools/py2fgen/wrappers/dycore_wrapper.py b/tools/src/icon4py/tools/py2fgen/wrappers/dycore_wrapper.py index d111eba826..6f3238f8a1 100644 --- a/tools/src/icon4py/tools/py2fgen/wrappers/dycore_wrapper.py +++ b/tools/src/icon4py/tools/py2fgen/wrappers/dycore_wrapper.py @@ -22,7 +22,8 @@ import gt4py.next as gtx import numpy as np -from gt4py.next import config as gtx_config, metrics as gtx_metrics +from gt4py.next import config as gtx_config +from gt4py.next.instrumentation import metrics as gtx_metrics from gt4py.next.type_system import type_specifications as ts from icon4py.model.atmosphere.dycore import dycore_states, solve_nonhydro diff --git a/uv.lock b/uv.lock index 15378eecc8..761027ffda 100644 --- a/uv.lock +++ b/uv.lock @@ -1,5 +1,5 @@ version = 1 -revision = 2 +revision = 3 requires-python = ">=3.10" resolution-markers = [ "python_full_version < '3.11'", @@ -175,8 +175,8 @@ dependencies = [ { name = "pathspec" }, { name = "platformdirs" }, { name = "pytokens" }, - { name = "tomli", marker = "python_full_version < '3.11'" }, - { name = "typing-extensions", marker = "python_full_version < '3.11'" }, + { name = "tomli", marker = "python_full_version < '3.11' or (extra == 'extra-7-icon4py-cuda11' and extra == 'extra-7-icon4py-cuda12')" }, + { name = "typing-extensions", marker = "python_full_version < '3.11' or (extra == 'extra-7-icon4py-cuda11' and extra == 'extra-7-icon4py-cuda12')" }, ] sdist = { url = "https://files.pythonhosted.org/packages/8c/ad/33adf4708633d047950ff2dfdea2e215d84ac50ef95aff14a614e4b6e9b2/black-25.11.0.tar.gz", hash = "sha256:9a323ac32f5dc75ce7470501b887250be5005a01602e931a15e45593f70f6e08", size = 655669, upload-time = "2025-11-10T01:53:50.558Z" } wheels = [ @@ -568,7 +568,7 @@ name = "click" version = "8.1.7" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "colorama", marker = "sys_platform == 'win32'" }, + { name = "colorama", marker = "sys_platform == 'win32' or (extra == 'extra-7-icon4py-cuda11' and extra == 'extra-7-icon4py-cuda12')" }, ] sdist = { url = "https://files.pythonhosted.org/packages/96/d3/f04c7bfcf5c1862a2a5b845c6b2b360488cf47af55dfa79c98f6a6bf98b5/click-8.1.7.tar.gz", hash = "sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de", size = 336121, upload-time = "2023-08-17T17:29:11.868Z" } wheels = [ @@ -923,7 +923,7 @@ dependencies = [ { name = "numpy" }, { name = "packaging" }, { name = "ply" }, - { name = "pyreadline", marker = "sys_platform == 'win32'" }, + { name = "pyreadline", marker = "sys_platform == 'win32' or (extra == 'extra-7-icon4py-cuda11' and extra == 'extra-7-icon4py-cuda12')" }, { name = "pyyaml" }, { name = "sympy" }, ] @@ -1402,8 +1402,8 @@ wheels = [ [[package]] name = "gt4py" -version = "1.1.3" -source = { registry = "https://pypi.org/simple" } +version = "1.1.3.post33+428882e7" +source = { git = "https://github.com/GridTools/gt4py?branch=muphys_staging#428882e7dfd5e44fbdc4d19699ffa6f91f9111e6" } dependencies = [ { name = "attrs" }, { name = "black" }, @@ -1433,10 +1433,6 @@ dependencies = [ { name = "versioningit" }, { name = "xxhash" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/d3/4e/097b429630bc4bef970e33ec635086063c4707ec8349d172feedb32f7332/gt4py-1.1.3.tar.gz", hash = "sha256:20c7e1983ecb4cd1841d7463196336de20bce7fdf9b81318ebc8dfea7004b31e", size = 777976, upload-time = "2026-01-22T12:25:11.077Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/28/7b/f18339b7ca1420c9d38fd3a88bd84d32e8cde0b09a886b5736607886d641/gt4py-1.1.3-py3-none-any.whl", hash = "sha256:c79e4442d09e11038fe3bbddad7a7a2e470e2cb8c90382b3015adf17d6132dff", size = 984522, upload-time = "2026-01-22T12:25:09.189Z" }, -] [package.optional-dependencies] cuda11 = [ @@ -1755,7 +1751,7 @@ dependencies = [ [package.metadata] requires-dist = [ - { name = "gt4py", specifier = "==1.1.3" }, + { name = "gt4py", git = "https://github.com/GridTools/gt4py?branch=muphys_staging" }, { name = "icon4py-common", editable = "model/common" }, { name = "packaging", specifier = ">=20.0" }, ] @@ -1772,7 +1768,7 @@ dependencies = [ [package.metadata] requires-dist = [ - { name = "gt4py", specifier = "==1.1.3" }, + { name = "gt4py", git = "https://github.com/GridTools/gt4py?branch=muphys_staging" }, { name = "icon4py-common", editable = "model/common" }, { name = "packaging", specifier = ">=20.0" }, ] @@ -1789,7 +1785,7 @@ dependencies = [ [package.metadata] requires-dist = [ - { name = "gt4py", specifier = "==1.1.3" }, + { name = "gt4py", git = "https://github.com/GridTools/gt4py?branch=muphys_staging" }, { name = "icon4py-common", editable = "model/common" }, { name = "packaging", specifier = ">=20.0" }, ] @@ -1806,7 +1802,7 @@ dependencies = [ [package.metadata] requires-dist = [ - { name = "gt4py", specifier = "==1.1.3" }, + { name = "gt4py", git = "https://github.com/GridTools/gt4py?branch=muphys_staging" }, { name = "icon4py-common", editable = "model/common" }, { name = "packaging", specifier = ">=20.0" }, ] @@ -1818,15 +1814,13 @@ source = { editable = "model/atmosphere/subgrid_scale_physics/muphys" } dependencies = [ { name = "gt4py" }, { name = "icon4py-common", extra = ["io"] }, - { name = "numpy" }, { name = "packaging" }, ] [package.metadata] requires-dist = [ - { name = "gt4py", specifier = "==1.1.3" }, + { name = "gt4py", git = "https://github.com/GridTools/gt4py?branch=muphys_staging" }, { name = "icon4py-common", extras = ["io"], editable = "model/common" }, - { name = "numpy", specifier = ">=1.23.3" }, { name = "packaging", specifier = ">=20.0" }, ] @@ -1890,9 +1884,9 @@ requires-dist = [ { name = "dace", specifier = "==43!2026.1.21", index = "https://gridtools.github.io/pypi/" }, { name = "datashader", marker = "extra == 'io'", specifier = ">=0.16.1" }, { name = "ghex", marker = "extra == 'distributed'", git = "https://github.com/msimberg/GHEX.git?branch=async-mpi" }, - { name = "gt4py", specifier = "==1.1.3" }, - { name = "gt4py", extras = ["cuda11"], marker = "extra == 'cuda11'" }, - { name = "gt4py", extras = ["cuda12"], marker = "extra == 'cuda12'" }, + { name = "gt4py", git = "https://github.com/GridTools/gt4py?branch=muphys_staging" }, + { name = "gt4py", extras = ["cuda11"], marker = "extra == 'cuda11'", git = "https://github.com/GridTools/gt4py?branch=muphys_staging" }, + { name = "gt4py", extras = ["cuda12"], marker = "extra == 'cuda12'", git = "https://github.com/GridTools/gt4py?branch=muphys_staging" }, { name = "holoviews", marker = "extra == 'io'", specifier = ">=1.16.0" }, { name = "icon4py-common", extras = ["distributed", "io"], marker = "extra == 'all'", editable = "model/common" }, { name = "mpi4py", marker = "extra == 'distributed'", specifier = ">=3.1.5" }, @@ -1928,7 +1922,7 @@ dependencies = [ requires-dist = [ { name = "click", specifier = ">=8.0.1" }, { name = "devtools", specifier = ">=0.12" }, - { name = "gt4py", specifier = "==1.1.3" }, + { name = "gt4py", git = "https://github.com/GridTools/gt4py?branch=muphys_staging" }, { name = "icon4py-atmosphere-diffusion", editable = "model/atmosphere/diffusion" }, { name = "icon4py-atmosphere-dycore", editable = "model/atmosphere/dycore" }, { name = "icon4py-common", editable = "model/common" }, @@ -1956,7 +1950,7 @@ dependencies = [ [package.metadata] requires-dist = [ { name = "devtools", specifier = ">=0.12" }, - { name = "gt4py", specifier = "==1.1.3" }, + { name = "gt4py", git = "https://github.com/GridTools/gt4py?branch=muphys_staging" }, { name = "icon4py-atmosphere-diffusion", editable = "model/atmosphere/diffusion" }, { name = "icon4py-atmosphere-dycore", editable = "model/atmosphere/dycore" }, { name = "icon4py-common", editable = "model/common" }, @@ -1985,7 +1979,7 @@ dependencies = [ [package.metadata] requires-dist = [ { name = "filelock", specifier = ">=3.18.0" }, - { name = "gt4py", specifier = "==1.1.3" }, + { name = "gt4py", git = "https://github.com/GridTools/gt4py?branch=muphys_staging" }, { name = "icon4py-common", extras = ["io"], editable = "model/common" }, { name = "numpy", specifier = ">=1.23.3" }, { name = "packaging", specifier = ">=20.0" }, @@ -2034,9 +2028,9 @@ requires-dist = [ { name = "cupy-cuda11x", marker = "extra == 'cuda11'", specifier = ">=13.0" }, { name = "cupy-cuda12x", marker = "extra == 'cuda12'", specifier = ">=13.0" }, { name = "fprettify", specifier = ">=0.3.7" }, - { name = "gt4py", specifier = "==1.1.3" }, - { name = "gt4py", extras = ["cuda11"], marker = "extra == 'cuda11'" }, - { name = "gt4py", extras = ["cuda12"], marker = "extra == 'cuda12'" }, + { name = "gt4py", git = "https://github.com/GridTools/gt4py?branch=muphys_staging" }, + { name = "gt4py", extras = ["cuda11"], marker = "extra == 'cuda11'", git = "https://github.com/GridTools/gt4py?branch=muphys_staging" }, + { name = "gt4py", extras = ["cuda12"], marker = "extra == 'cuda12'", git = "https://github.com/GridTools/gt4py?branch=muphys_staging" }, { name = "icon4py-atmosphere-advection", editable = "model/atmosphere/advection" }, { name = "icon4py-atmosphere-diffusion", editable = "model/atmosphere/diffusion" }, { name = "icon4py-atmosphere-dycore", editable = "model/atmosphere/dycore" }, @@ -3978,7 +3972,7 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "packaging" }, { name = "setuptools" }, - { name = "tomli", marker = "python_full_version < '3.11'" }, + { name = "tomli", marker = "python_full_version < '3.11' or (extra == 'extra-7-icon4py-cuda11' and extra == 'extra-7-icon4py-cuda12')" }, ] sdist = { url = "https://files.pythonhosted.org/packages/7b/b1/19587742aad604f1988a8a362e660e8c3ac03adccdb71c96d86526e5eb62/setuptools_scm-9.2.2.tar.gz", hash = "sha256:1c674ab4665686a0887d7e24c03ab25f24201c213e82ea689d2f3e169ef7ef57", size = 203385, upload-time = "2025-10-19T22:08:05.608Z" } wheels = [ @@ -4603,7 +4597,7 @@ version = "3.1.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "packaging" }, - { name = "tomli", marker = "python_full_version < '3.11'" }, + { name = "tomli", marker = "python_full_version < '3.11' or (extra == 'extra-7-icon4py-cuda11' and extra == 'extra-7-icon4py-cuda12')" }, ] sdist = { url = "https://files.pythonhosted.org/packages/5c/9b/941647e9e3616b5da7bbc4601ed9920f44a886704100fa8151406c07c149/versioningit-3.1.2.tar.gz", hash = "sha256:4db83ed99f56b07d83940bee3445ca46ca120d13b6b304cdb5fb44e5aa4edec0", size = 213047, upload-time = "2024-07-20T12:41:07.927Z" } wheels = [