From a9a99928c1b1ba5c05234e45e36ccf0ac7c79214 Mon Sep 17 00:00:00 2001 From: edopao Date: Mon, 18 Nov 2024 15:21:01 +0100 Subject: [PATCH] feat[next]: Upgrade dace dependency to v1.0.0 (#1740) DaCe version upgraded to `1.0.0`. It is also constrained to `< 1.1.0 `because the plan for DaCe v1.x is to introduce some breaking changes. GPU tests still fail with GTIR DaCe backend (`test_double_use_scalar`) so they will be enabled in a separate PR. Additional changes: - Removed limitation on SymPy version since DaCe is now compatible with SymPy v1.13 - CUDA version upgraded from 11.2 to 11.4 to avoid this compile error in gpu build: `dace/codegen/../runtime/include/dace/math.h(499): error: A __device__ variable cannot be marked constexpr` --- .pre-commit-config.yaml | 2 +- ci/cscs-ci.yml | 2 +- constraints.txt | 13 ++++++------- min-extra-requirements-test.txt | 3 +-- pyproject.toml | 2 +- requirements-dev.txt | 13 ++++++------- .../dace_fieldview/transformations/loop_blocking.py | 4 ---- 7 files changed, 16 insertions(+), 23 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 07f75177ea..1c3b6e693f 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -50,7 +50,7 @@ repos: ## version = re.search('ruff==([0-9\.]*)', open("constraints.txt").read())[1] ## print(f"rev: v{version}") ##]]] - rev: v0.7.3 + rev: v0.7.4 ##[[[end]]] hooks: # Run the linter. diff --git a/ci/cscs-ci.yml b/ci/cscs-ci.yml index e2833e3cd9..7adb88459e 100644 --- a/ci/cscs-ci.yml +++ b/ci/cscs-ci.yml @@ -46,7 +46,7 @@ stages: .build_baseimage_x86_64: extends: [.container-builder-cscs-zen2, .build_baseimage] variables: - CUDA_VERSION: 11.2.2 + CUDA_VERSION: 11.4.3 CUPY_PACKAGE: cupy-cuda11x CUPY_VERSION: 12.3.0 # latest version that supports cuda 11 UBUNTU_VERSION: 20.04 # 22.04 hangs on daint in some tests for unknown reasons. diff --git a/constraints.txt b/constraints.txt index 4247f4951d..b4b8bc00d4 100644 --- a/constraints.txt +++ b/constraints.txt @@ -33,7 +33,7 @@ contourpy==1.1.1 # via matplotlib coverage==7.6.1 # via -r requirements-dev.in, pytest-cov cycler==0.12.1 # via matplotlib cytoolz==1.0.0 # via gt4py (pyproject.toml) -dace==0.16.1 # via gt4py (pyproject.toml) +dace==1.0.0 # via gt4py (pyproject.toml) darglint==1.8.1 # via -r requirements-dev.in debugpy==1.8.8 # via ipykernel decorator==5.1.1 # via ipython @@ -50,7 +50,7 @@ factory-boy==3.3.1 # via gt4py (pyproject.toml), pytest-factoryboy faker==33.0.0 # via factory-boy fastjsonschema==2.20.0 # via nbformat filelock==3.16.1 # via tox, virtualenv -fonttools==4.54.1 # via matplotlib +fonttools==4.55.0 # via matplotlib fparser==0.1.4 # via dace frozendict==2.4.6 # via gt4py (pyproject.toml) gitdb==4.0.11 # via gitpython @@ -67,7 +67,7 @@ iniconfig==2.0.0 # via pytest ipykernel==6.29.5 # via nbmake ipython==8.12.3 # via ipykernel jedi==0.19.2 # via ipython -jinja2==3.1.4 # via dace, gt4py (pyproject.toml), sphinx +jinja2==3.1.4 # via gt4py (pyproject.toml), sphinx jsonschema==4.23.0 # via nbformat jsonschema-specifications==2023.12.1 # via jsonschema jupyter-client==8.6.3 # via ipykernel, nbclient @@ -95,7 +95,7 @@ ninja==1.11.1.1 # via gt4py (pyproject.toml) nodeenv==1.9.1 # via pre-commit numpy==1.24.4 # via contourpy, dace, gt4py (pyproject.toml), matplotlib, scipy orderly-set==5.2.2 # via deepdiff -packaging==24.2 # via black, build, gt4py (pyproject.toml), ipykernel, jupytext, matplotlib, pipdeptree, pyproject-api, pytest, pytest-factoryboy, setuptools-scm, sphinx, tox +packaging==24.2 # via black, build, dace, gt4py (pyproject.toml), ipykernel, jupytext, matplotlib, pipdeptree, pyproject-api, pytest, pytest-factoryboy, setuptools-scm, sphinx, tox parso==0.8.4 # via jedi pathspec==0.12.1 # via black pexpect==4.9.0 # via ipython @@ -139,7 +139,7 @@ requests==2.32.3 # via sphinx rich==13.9.4 # via bump-my-version, rich-click, tach rich-click==1.8.4 # via bump-my-version rpds-py==0.20.1 # via jsonschema, referencing -ruff==0.7.3 # via -r requirements-dev.in +ruff==0.7.4 # via -r requirements-dev.in scipy==1.10.1 # via gt4py (pyproject.toml) setuptools-scm==8.1.0 # via fparser six==1.16.0 # via asttokens, astunparse, python-dateutil @@ -157,7 +157,7 @@ sphinxcontrib-qthelp==1.0.3 # via sphinx sphinxcontrib-serializinghtml==1.1.5 # via sphinx stack-data==0.6.3 # via ipython stdlib-list==0.10.0 # via tach -sympy==1.12.1 # via dace, gt4py (pyproject.toml) +sympy==1.13.3 # via dace tabulate==0.9.0 # via gt4py (pyproject.toml) tach==0.14.3 # via -r requirements-dev.in tomli==2.1.0 ; python_version < "3.11" # via -r requirements-dev.in, black, build, coverage, jupytext, mypy, pip-tools, pyproject-api, pytest, setuptools-scm, tach, tox @@ -173,7 +173,6 @@ urllib3==2.2.3 # via requests virtualenv==20.27.1 # via pre-commit, tox wcmatch==10.0 # via bump-my-version wcwidth==0.2.13 # via prompt-toolkit -websockets==13.1 # via dace wheel==0.45.0 # via astunparse, pip-tools xxhash==3.0.0 # via gt4py (pyproject.toml) zipp==3.20.2 # via importlib-metadata, importlib-resources diff --git a/min-extra-requirements-test.txt b/min-extra-requirements-test.txt index 4190570105..57c0d3969d 100644 --- a/min-extra-requirements-test.txt +++ b/min-extra-requirements-test.txt @@ -61,7 +61,7 @@ cmake==3.22 cogapp==3.3 coverage[toml]==5.0 cytoolz==0.12.1 -dace==0.16.1 +dace==1.0.0 darglint==1.6 deepdiff==5.6.0 devtools==0.6 @@ -101,7 +101,6 @@ scipy==1.9.2 setuptools==65.5.0 sphinx==4.4 sphinx_rtd_theme==1.0 -sympy==1.9 tabulate==0.8.10 tach==0.10.7 tomli==2.0.1; python_version < "3.11" diff --git a/pyproject.toml b/pyproject.toml index 1504c8b17b..02d301957c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -76,7 +76,7 @@ all-cuda12 = ['gt4py[cuda12,dace,formatting,jax-cuda12,performance,testing]'] # Other extras cuda11 = ['cupy-cuda11x>=12.0'] cuda12 = ['cupy-cuda12x>=12.0'] -dace = ['dace>=0.16.1', 'sympy>=1.9,<1.13'] # see https://github.com/spcl/dace/pull/1620 +dace = ['dace>=1.0.0,<1.1.0'] # v1.x will contain breaking changes, see https://github.com/spcl/dace/milestone/4 formatting = ['clang-format>=9.0'] gpu = ['cupy>=12.0'] jax-cpu = ['jax[cpu]>=0.4.18; python_version>="3.10"'] diff --git a/requirements-dev.txt b/requirements-dev.txt index ca7eb32487..9f95779fd5 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -33,7 +33,7 @@ contourpy==1.1.1 # via -c constraints.txt, matplotlib coverage[toml]==7.6.1 # via -c constraints.txt, -r requirements-dev.in, pytest-cov cycler==0.12.1 # via -c constraints.txt, matplotlib cytoolz==1.0.0 # via -c constraints.txt, gt4py (pyproject.toml) -dace==0.16.1 # via -c constraints.txt, gt4py (pyproject.toml) +dace==1.0.0 # via -c constraints.txt, gt4py (pyproject.toml) darglint==1.8.1 # via -c constraints.txt, -r requirements-dev.in debugpy==1.8.8 # via -c constraints.txt, ipykernel decorator==5.1.1 # via -c constraints.txt, ipython @@ -50,7 +50,7 @@ factory-boy==3.3.1 # via -c constraints.txt, gt4py (pyproject.toml), pyte faker==33.0.0 # via -c constraints.txt, factory-boy fastjsonschema==2.20.0 # via -c constraints.txt, nbformat filelock==3.16.1 # via -c constraints.txt, tox, virtualenv -fonttools==4.54.1 # via -c constraints.txt, matplotlib +fonttools==4.55.0 # via -c constraints.txt, matplotlib fparser==0.1.4 # via -c constraints.txt, dace frozendict==2.4.6 # via -c constraints.txt, gt4py (pyproject.toml) gitdb==4.0.11 # via -c constraints.txt, gitpython @@ -67,7 +67,7 @@ iniconfig==2.0.0 # via -c constraints.txt, pytest ipykernel==6.29.5 # via -c constraints.txt, nbmake ipython==8.12.3 # via -c constraints.txt, ipykernel jedi==0.19.2 # via -c constraints.txt, ipython -jinja2==3.1.4 # via -c constraints.txt, dace, gt4py (pyproject.toml), sphinx +jinja2==3.1.4 # via -c constraints.txt, gt4py (pyproject.toml), sphinx jsonschema==4.23.0 # via -c constraints.txt, nbformat jsonschema-specifications==2023.12.1 # via -c constraints.txt, jsonschema jupyter-client==8.6.3 # via -c constraints.txt, ipykernel, nbclient @@ -95,7 +95,7 @@ ninja==1.11.1.1 # via -c constraints.txt, gt4py (pyproject.toml) nodeenv==1.9.1 # via -c constraints.txt, pre-commit numpy==1.24.4 # via -c constraints.txt, contourpy, dace, gt4py (pyproject.toml), matplotlib orderly-set==5.2.2 # via -c constraints.txt, deepdiff -packaging==24.2 # via -c constraints.txt, black, build, gt4py (pyproject.toml), ipykernel, jupytext, matplotlib, pipdeptree, pyproject-api, pytest, pytest-factoryboy, setuptools-scm, sphinx, tox +packaging==24.2 # via -c constraints.txt, black, build, dace, gt4py (pyproject.toml), ipykernel, jupytext, matplotlib, pipdeptree, pyproject-api, pytest, pytest-factoryboy, setuptools-scm, sphinx, tox parso==0.8.4 # via -c constraints.txt, jedi pathspec==0.12.1 # via -c constraints.txt, black pexpect==4.9.0 # via -c constraints.txt, ipython @@ -139,7 +139,7 @@ requests==2.32.3 # via -c constraints.txt, sphinx rich==13.9.4 # via -c constraints.txt, bump-my-version, rich-click, tach rich-click==1.8.4 # via -c constraints.txt, bump-my-version rpds-py==0.20.1 # via -c constraints.txt, jsonschema, referencing -ruff==0.7.3 # via -c constraints.txt, -r requirements-dev.in +ruff==0.7.4 # via -c constraints.txt, -r requirements-dev.in setuptools-scm==8.1.0 # via -c constraints.txt, fparser six==1.16.0 # via -c constraints.txt, asttokens, astunparse, python-dateutil smmap==5.0.1 # via -c constraints.txt, gitdb @@ -156,7 +156,7 @@ sphinxcontrib-qthelp==1.0.3 # via -c constraints.txt, sphinx sphinxcontrib-serializinghtml==1.1.5 # via -c constraints.txt, sphinx stack-data==0.6.3 # via -c constraints.txt, ipython stdlib-list==0.10.0 # via -c constraints.txt, tach -sympy==1.12.1 # via -c constraints.txt, dace, gt4py (pyproject.toml) +sympy==1.13.3 # via -c constraints.txt, dace tabulate==0.9.0 # via -c constraints.txt, gt4py (pyproject.toml) tach==0.14.3 # via -c constraints.txt, -r requirements-dev.in tomli==2.1.0 ; python_version < "3.11" # via -c constraints.txt, -r requirements-dev.in, black, build, coverage, jupytext, mypy, pip-tools, pyproject-api, pytest, setuptools-scm, tach, tox @@ -172,7 +172,6 @@ urllib3==2.2.3 # via -c constraints.txt, requests virtualenv==20.27.1 # via -c constraints.txt, pre-commit, tox wcmatch==10.0 # via -c constraints.txt, bump-my-version wcwidth==0.2.13 # via -c constraints.txt, prompt-toolkit -websockets==13.1 # via -c constraints.txt, dace wheel==0.45.0 # via -c constraints.txt, astunparse, pip-tools xxhash==3.0.0 # via -c constraints.txt, gt4py (pyproject.toml) zipp==3.20.2 # via -c constraints.txt, importlib-metadata, importlib-resources diff --git a/src/gt4py/next/program_processors/runners/dace_fieldview/transformations/loop_blocking.py b/src/gt4py/next/program_processors/runners/dace_fieldview/transformations/loop_blocking.py index 7acd997a0d..d7326e1131 100644 --- a/src/gt4py/next/program_processors/runners/dace_fieldview/transformations/loop_blocking.py +++ b/src/gt4py/next/program_processors/runners/dace_fieldview/transformations/loop_blocking.py @@ -63,16 +63,12 @@ class LoopBlocking(dace_transformation.SingleStateTransformation): dtype=set, allow_none=True, default=None, - optional=True, - optional_condition=lambda _: False, desc="Set of nodes that are independent of the blocking parameter.", ) dependent_nodes = dace_properties.Property( dtype=set, allow_none=True, default=None, - optional=True, - optional_condition=lambda _: False, desc="Set of nodes that are dependent on the blocking parameter.", )