Recent Releases of GT4Py

GT4Py - GT4Py v1.2.1

Changes since v1.2.0

General

  • Update dace dependency to 2.0.0a6.
  • Support PEP 695 type aliases (type X = ...) in annotations, with diagnostics that point at the offending annotation.
  • Fix latent bugs surfaced by the Python 3.12 floor and stop re-exporting the deprecated typing aliases (Dict, List, Set, FrozenSet, Tuple, Type) from gt4py.eve; use the builtin generics instead.

Cartesian

  • Add support for IntEnum values in stencil code and as stencil arguments.
  • Allow data dimension sizes to be any integer type, not just plain int.
  • Remove deprecation warnings emitted by the GTScript frontend on Python 3.12 and later.

All changes

Full Changelog: https://github.com/GridTools/gt4py/compare/v1.2.0...v1.2.1

Climate Change - Climate Data Processing and Analysis - Python
Published by havogt 9 days ago

GT4Py - GT4Py v1.2.0

Changes since v1.1.12

General

  • Drop support for Python 3.10 and 3.11.
  • Update dace dependency to 2.0.0a5.

Cartesian

  • Add gtscript.lazy_function decorator that delays parsing of annotated gtscript functions until first use, enabling types that are not fully defined at import time.
  • Update the C++ standard to C++20 for generated code.
  • Fix derived math functions in the DaCe backend to respect literal float precision, matching Fortran behavior.
  • Avoid long compilation times in the DaCe backend by skipping a costly simplification pass.

All changes

Full Changelog: https://github.com/GridTools/gt4py/compare/v1.1.12...v1.2.0

Climate Change - Climate Data Processing and Analysis - Python
Published by havogt 21 days ago

GT4Py - GT4Py v1.1.12

Summary of changes since v1.1.11

Cartesian

  • Improve DaCe loop scheduling for CPU and CUDA backends.
  • Generate cleaner index-bound expressions in the DaCe backend.
  • Use descriptive loop names in the DaCe schedule tree for easier profiling and debugging.
  • Fix out-of-bounds reads for stencils using K-axis interfaces without extra vertical padding.

All changes

New Contributors

Full Changelog: https://github.com/GridTools/gt4py/compare/v1.1.11...v1.1.12

Climate Change - Climate Data Processing and Analysis - Python
Published by edopao about 1 month ago

GT4Py - v1.1.11

Summary of changes since v1.1.10

General

  • Add minimal harness for coding agents.
  • Improve the infrastructure for development scripts.

Cartesian

  • Add a DaCe GPU backend with IJK-loop layout.
  • Change DaCe GPU backends to unit alignment, enabling Fortran-style memory mapping and reducing memory footprint.
  • Change DaCe backends to nest the sequential vertical K-loop inside the parallel IJ-kernel on parallel targets.
  • Fix format of extra flags for device compilation.

All changes

Full Changelog: https://github.com/GridTools/gt4py/compare/v1.1.10...v1.1.11

Climate Change - Climate Data Processing and Analysis - Python
Published by havogt 2 months ago

GT4Py - GT4Py v1.1.10

Summary of changes since v1.1.9

General

  • Drop support for NumPy 1.x

Cartesian

  • Front-end improvements to interval parsing.
  • Change field indexation to always require full indexation.
  • Fix array lifetime for frozen stencil SDFGs.
  • Use utf-8 encoding for generated code.
  • Fix hashing used in stencil program cache.
  • Enforce cartesian layout to be given precedence in allocation striding.
  • Bump pybind11 to 3.0.3 to fix issue in previous 3.x version.
  • Disable OpenMP for GPU backends.
  • Fix setting of CXX compiler flags.

All changes

New Contributors

Full Changelog: https://github.com/GridTools/gt4py/compare/v1.1.9...v1.1.10

Climate Change - Climate Data Processing and Analysis - Python
Published by havogt 3 months ago

GT4Py - GT4Py v1.1.9

Summary of changes since v1.1.8

Cartesian

  • Fix loop re-ordering in schedule tree.
  • Fix scalarization of temporaries
  • Redundant region syntax removed.

All changes

Full Changelog: https://github.com/GridTools/gt4py/compare/v1.1.8...v1.1.9

Climate Change - Climate Data Processing and Analysis - Python
Published by havogt 5 months ago

GT4Py - GT4Py v1.1.8

Summary of changes since v1.1.7

Cartesian

  • Fix default compile flags for for various compilers.
  • Generate numpy >= 2.0 compatible code in the debug backend.
  • Support for data dims of size one in dace backends.

All changes

Full Changelog: https://github.com/GridTools/gt4py/compare/v1.1.7...v1.1.8

Climate Change - Climate Data Processing and Analysis - Python
Published by havogt 5 months ago

GT4Py - GT4Py v1.1.7

Summary of changes since v1.1.6

Cartesian

  • Leverage unrolling of integer power calls, in dace backends, for exponents 1, 2, and 3.
  • Faster SDFG construction in dace backends.
  • Introduce default compiler flags.

All changes

Full Changelog: https://github.com/GridTools/gt4py/compare/v1.1.6...v1.1.7

Climate Change - Climate Data Processing and Analysis - Python
Published by havogt 6 months ago

GT4Py - GT4Py v1.1.6

Summary of changes since v1.1.5

Cartesian

  • Added a GT4PY_CARTESIAN_ENABLE_OPENMP environment variable to disable OpenMP, which allows to support compilers (e.g. apple-clang) not shipping with OpenMP by default.
  • Fixed issue in the numpy backend related to K-query expressions, where an internal variable was shadowing any user-provided k_mask variable.

All changes

Full Changelog: https://github.com/GridTools/gt4py/compare/v1.1.5...v1.1.6

Climate Change - Climate Data Processing and Analysis - Python
Published by havogt 6 months ago

GT4Py - GT4Py v1.1.5

Summary of changes since v1.1.4

Cartesian

  • Switch to DaCe main development branch, which is going to be released as DaCe v2.x.
  • Changes in dace:X backends to reduce the size of SDFGs saved to disk.
  • Fix casting of arguments of power function.

All changes

Full Changelog: https://github.com/GridTools/gt4py/compare/v1.1.4...v1.1.5

Climate Change - Climate Data Processing and Analysis - Python
Published by havogt 6 months ago

GT4Py - GT4Py v1.1.4

Summary of changes since v1.1.3

Cartesian

  • Fixed issue in program bindings by locking pybind11 to 2.x

All changes

Full Changelog: https://github.com/GridTools/gt4py/compare/v1.1.3...v1.1.4

Climate Change - Climate Data Processing and Analysis - Python
Published by havogt 6 months ago

GT4Py - GT4Py v1.1.3

Summary of changes since v1.1.2

Cartesian

  • New features:
    • Support for K iterator access in numpy backend
    • New dace_KJI backend that operates on fields with Fortran memory layout
    • Automatic match for dace:X backends between layout and schedule, cache-optimal by default

All changes

Full Changelog: https://github.com/GridTools/gt4py/compare/v1.1.2...v1.1.3

Climate Change - Climate Data Processing and Analysis - Python
Published by havogt 7 months ago

GT4Py - GT4Py v1.1.2

Summary of changes since v1.1.1

General

  • Added support for Python 3.14.

Cartesian

  • New feature: Runtime Interval Bounds

All changes

New Contributors

Full Changelog: https://github.com/GridTools/gt4py/compare/v1.1.1...v1.1.2

Climate Change - Climate Data Processing and Analysis - Python
Published by havogt 9 months ago

GT4Py - GT4Py v1.1.1

Summary of changes since v1.1.0

Cartesian

  • Allow self-assignment with offset in K dimension in sequential vertical loops
  • Bug fixes:
    • Skip implicit upcasting in (explicit) cast operations
    • Respect precision of Constants

All changes

Full Changelog: https://github.com/GridTools/gt4py/compare/v1.1.0...v1.1.1

Climate Change - Climate Data Processing and Analysis - Python
Published by havogt 9 months ago

GT4Py - GT4Py v1.1.0

Summary of changes since v1.0.10

Cartesian

  • New experimental feature: 2D temporaries.
  • Removed deprecated cuda backend.
  • Bug fixes:
    • Absolute field-access in while-condition
    • Upcasting of expressions on the lhs of assignments

Versioning

  • Added a fallback version of the form 1.0.10+unknown.version.details, when no version is available from git.

Next

See commit history.

All changes

Full Changelog: https://github.com/GridTools/gt4py/compare/v1.0.10...v1.1.0

Climate Change - Climate Data Processing and Analysis - Python
Published by havogt 10 months ago

GT4Py - GT4Py v1.0.10

Summary of changes since v1.0.9

Cartesian

  • New backend dace:cpu_kfirst.
  • New experimental features:
    • absolute indexing in K.
    • expose K index.
  • Fixes and performance improvements in DaCe backends.
  • Improved error messages.

Development

  • Enabled DaCe backends on AMD MI300 CI.

Next

See commit history.

All changes

Full Changelog: https://github.com/GridTools/gt4py/compare/v1.0.9...v1.0.10

Climate Change - Climate Data Processing and Analysis - Python
Published by havogt 10 months ago

GT4Py - GT4Py v1.0.9

Summary of changes since v1.0.8

General

  • Performance optimizations in eve.visitors classes, by caching visitor methods at class level.

Cartesian

  • Some fixes in dace backend.

Next

See commit history.

All changes

Full Changelog: https://github.com/GridTools/gt4py/compare/v1.0.8...v1.0.9

Climate Change - Climate Data Processing and Analysis - Python
Published by havogt 12 months ago

GT4Py - GT4Py v1.0.8

Summary of changes since v1.0.7

Cartesian

  • Introduce switches for the default int and float precision.
  • Introduce erf and erfc functions.
  • Make CUDA compilation thread-safe.

Development

  • Add MacOS to daily CI.

Next

See commit history.

All changes

Full Changelog: https://github.com/GridTools/gt4py/compare/v1.0.7...v1.0.8

Climate Change - Climate Data Processing and Analysis - Python
Published by havogt 12 months ago

GT4Py - GT4Py v1.0.7

Summary of changes since v1.0.6

Cartesian

  • Introduce switches for the default int and float precision.
  • Introduce erf and erfc functions.
  • Make CUDA compilation thread-safe.

Development

  • Add MacOS to daily CI.

Next

See commit history.

All changes

Full Changelog: https://github.com/GridTools/gt4py/compare/v1.0.6...v1.0.7

Climate Change - Climate Data Processing and Analysis - Python
Published by havogt about 1 year ago

GT4Py - GT4Py v1.0.6

Summary of changes since v1.0.5

Cartesian

  • Introduced a debug backend, a plain python backend for debugging and rapid prototyping of features.
  • Refactoring of the lowering to SDFG using DaCe ScheduleTree: the current bridge OIR -> TreeIR -> SDFG is replaced with OIR -> TreeIR -> ScheduleTree, then it relies on DaCe to expand ScheduleTree to SDFG.

Development

  • GitHub Actions CI infrastructure updated with (optional) test-components exclusions loaded from a dynamically generated JSON file.

Next

See commit history.

All changes

Full Changelog: https://github.com/GridTools/gt4py/compare/v1.0.5...v1.0.6

Climate Change - Climate Data Processing and Analysis - Python
Published by havogt about 1 year ago

GT4Py - GT4Py v1.0.5

Summary of changes since v1.0.4

General

  • We added support for Python 3.12 and 3.13 and dropped support for Python < 3.10.
  • We moved to versioningit for versioning: each commit will now have a version following the format {major}.{minor}.{path}[.post{#commits since release}+{rev}[.dirty]], see section [tool.versioningit.format] in pyproject.toml.
  • The GridTools C++ library doesn't require Boost anymore, therefore there is no implicit dependency to Boost in GT4Py.

Cartesian

  • New feature: Allow writes with K-offsets in FORWARD and BACKWARD computations.
  • Undeprecated __INLINED as no concrete plans exist to implement an alternative.
  • Fixes cases with while-loops in conditionals.
  • Fix @gtscript.function inlining in while-loops.
  • Fixes in CuPy-ROCm storage allocation.
  • Improved test coverage for horizontal regions.
  • Improved some error messages and warnings.
  • Various style modernizations (especially related to dropped support for Python < 3.10)

DaCe support in Cartesian

  • Expose control flow elements to DaCe
  • Fixes argument validation in intersection code of DaCeIR's DomainInterval.

Development

  • Switched to uv is the standard project management tool.

All changes

New Contributors

Full Changelog: https://github.com/GridTools/gt4py/compare/v1.0.4...v1.0.5

Climate Change - Climate Data Processing and Analysis - Python
Published by havogt about 1 year ago

GT4Py - GT4Py v1.0.4

Summary of changes since v1.0.3

License

GT4Py is now licensed under the BSD license. SPDX-License-Identifier: BSD-3-Clause

Cartesian

  • Introduced a GlobalTable which is a data dimensions only Field. Access is provided via .A which also becomes a way to access data dimensions on regular Field.
  • Added an error message if a non existing backend is selected.
  • Allow setting compiler optimization level and flags on a per stencil basis
  • Added GT4PY_EXTRA_COMPILE_ARGS, GT4PY_EXTRA_LINK_ARGS and DACE_DEFAULT_BLOCK_SIZE environment variables
  • Fixes for the DaCe backend
  • Various style modernizations

Deprecation

  • The cuda backend is deprecated (enable by setting environment variable GT4PY_GTC_CUDA_USE=1), use gt:gpu or dace:gpu instead.

Development

  • Replaced flake8, black with ruff
  • Added CI plan with GH200 GPUs

All changes

New Contributors

Full Changelog: https://github.com/GridTools/gt4py/compare/v1.0.3...v1.0.4

Climate Change - Climate Data Processing and Analysis - Python
Published by havogt almost 2 years ago

GT4Py - GT4Py v1.0.3

Summary of changes since v1.0.2

General

  • Support for Python 3.11 and updated dependencies

Testing

  • Testing of Jupyter notebooks in CI

All changes

Full Changelog: https://github.com/GridTools/gt4py/compare/v1.0.2...v1.0.3

Climate Change - Climate Data Processing and Analysis - Python
Published by havogt over 2 years ago

GT4Py - GT4Py v1.0.2

Summary of changes since v1.0.1

Cartesian

  • Compatibility of gt4py.next Fields with gt4py.cartesian computations.
  • Fixes for DaCe 0.15.1 compatibility.
  • Added log10 as native function.
  • Make scipy optional: get scipy by installing gt4py[full] for best performance with numpy backend.

Storage

  • Refactored low-level storage allocation.

All changes

New Contributors

Full Changelog: https://github.com/GridTools/gt4py/compare/v1.0.1...v1.0.2

Climate Change - Climate Data Processing and Analysis - Python
Published by havogt over 2 years ago

GT4Py - GT4Py v1.0.1

First version including the experimental gt4py.next aka Declarative GT4Py. The gt4py.next package is excluded from semantic versioning.

Changes since v1.0.0

Cartesian

Climate Change - Climate Data Processing and Analysis - Python
Published by havogt over 3 years ago

GT4Py - GT4Py v1.0.0

First official release of the Cartesian GT4py.

Changes since the pre-release version v0.0.1

Added

  • Remove the Storage classes and implement the new "No Storage" concept.
  • Support interfaces for calling stencils with arbitrary buffer objects (for details see docs/arrays.rst and PR #868).
  • Updated documentation, logo and license headers.

Changed

  • Important gt4py package reorganization and modularization.
  • Moved most of existing functionality into gt4py.cartesian.
  • Moved gtc package into gt4py.cartesian.
  • Moved eve package into gt4py.
  • Refactored gt4py.storage to avoid dependencies on gt4py.cartesian.
  • Tests split into sub-packages and reorganized as unit_tests and integration_tests.

Climate Change - Climate Data Processing and Analysis - Python
Published by havogt over 3 years ago

GT4Py - Cartesian GT4Py v0.1.0

Last development version using old-style Storage class.

Climate Change - Climate Data Processing and Analysis - Python
Published by havogt almost 4 years ago