Skip to content

Releases: GridTools/gt4py

v1.1.11

18 Jun 15:09
7145f17

Choose a tag to compare

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

  • refactor[next-dace]: Add library node for reduce with skip values by @edopao in #2603
  • fix[next-dace]: Remove Unused Data Descriptor by @philip-paul-mueller in #2608
  • fix[next-dace]: Avoid referencing subset objects on multiple edges by @edopao in #2610
  • CI: Use production credentials for beverin by @edopao in #2611
  • feat[next]: concat_where embedded (limited to 1D) by @havogt in #2545
  • fix[next]: Fix premap between same dimensions by @havogt in #2607
  • feat[next]: Implement embedded as_offset by @havogt in #2612
  • fix[next-dace]: Reject MoveDataflowIntoIfBody when tasklet free symbol clashes with inner data descriptor by @edopao in #2614
  • fix[next-dace]: Handle duplicate outer AccessNodes for same data in MoveDataflowIntoIfBody by @edopao in #2613
  • fix[next]: raise on disjoint inverse image by @havogt in #2616
  • build[next]: Fixed Discovery of nanobind by @philip-paul-mueller in #2620
  • fix[next-dace]: Configure TX markers at compile-time by @edopao in #2621
  • docs: Add minimal Agent harness by @havogt in #2624
  • feat[cartesian]: dace:gpu_IJK backend by @FlorianDeconinck in #2606
  • refactor[next]: Replace apply_to_primitive_constituents with tree_map_type by @havogt in #2626
  • fix[next]: Error on variable declaration without assignment. by @havogt in #2631
  • test[next]: copy over as_offset tests from #1397 by @havogt in #2625
  • fix[next]: Better error when scan state and return don't agree. by @havogt in #2632
  • fix[next]: Error when using a reserved name by @havogt in #2630
  • refactor[next]: test-tree hygiene (renames, packaging) by @havogt in #2638
  • fix[cartesian]: Fix format of extra flags for device compiler by @FlorianDeconinck in #2629
  • fix[next-dace]: Fix filtering of nodes in all_nodes_recursive call by @edopao in #2640
  • refactor[next]: split ffront test_execution.py into feature files by @havogt in #2637
  • test[next]: fix no-op assertion in test_bound_args and drop duplicate tests by @havogt in #2641
  • refactor[next]: relocate shared fixture module out of ffront_tests by @havogt in #2642
  • test[next]: move tests around and add feature markers by @havogt in #2643
  • test[next]: simplify a few style outliers by @havogt in #2644
  • feat[cartesian]: Better macro of sequential vertical loop when targeting parallel hardware by @FlorianDeconinck in #2636
  • refactor[cartesian]: remove unused function argument by @romanc in #2639
  • test[next]: drop a bogus marker on test_domain_tuple by @havogt in #2647
  • feat[cartesian]: Make dace gpu backend unit-aligned by @FlorianDeconinck in #2649
  • Infrastructure to test DaCe's codegen (in)deterministic behavior by @kotsaloscv in #2590
  • feat[next]: Friendly error messages by @havogt in #2655
  • docs[next]: document test placement rule and marker semantics by @havogt in #2646
  • refactor[next]: normalize dtype predicates in type_info by @havogt in #2657
  • chore[scripts]: improve dev-scripts infrastructure by @egparedes in #2653
  • refactor[next]: Use cartesian shift syntax in all tests by @tehrengruber in #2411
  • refactor[scripts]: migrate DaCe determinism check to dev-scripts conventions by @egparedes in #2666
  • fix[eve]: use identity check for None in infer_type by @havogt in #2662
  • Releasing v1.1.11 by @edopao in #2668

Full Changelog: v1.1.10...v1.1.11

GT4Py v1.1.10

22 May 12:45
1a7dfdf

Choose a tag to compare

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

  • fix[cartesian]: Fix higher dimensional field access in runtime-intervals by @twicki in #2553
  • feat[cartesian]: All data dimensions field RHS access needs to be fully defined by @FlorianDeconinck in #2555
  • refactor[cartesian]: Better error message for out of bound read on stencils by @CharlesKrop in #2567
  • build: drop support for NumPy 1.x by @egparedes in #2570
  • fix[next-dace]: Runtime error in case of mismatch on array size/stride by @edopao in #2563
  • refactor[cartesian]: fix some type errors in frontend by @romanc in #2564
  • refactor[cartesian]: appropriate types for interval / horizontal by @romanc in #2573
  • ci: run pre-commit manually by @romanc in #2571
  • ci: Increase min version of jaxlib for python 3.14 by @edopao in #2575
  • feat[next]: GPU profiling by @egparedes in #2508
  • feat[next-dace]: Clarify use of HIPFLAGS by @iomaganaris in #2577
  • Fix wrong python version selection in some daily CI tasks by @egparedes in #2576
  • feat[next-dace]: Update DaCe version by @iomaganaris in #2580
  • fix[cartesian] : Respect stencil lifetime for arrays when freezing by @FlorianDeconinck in #2579
  • refactor[cartesian]: Avoid dummy DebugInfo in favor of configuration by @romanc in #2581
  • build[cartesian]: update DaCe version for cartesian by @romanc in #2584
  • fix[cartesian] Use utf-8 to encore python module code by @FlorianDeconinck in #2585
  • build[next-dace]: Smaller DaCe Folder by @philip-paul-mueller in #2565
  • fix[cartesian]: Consider full stencil when hashing stencil code for caching purposes by @romanc in #2588
  • refactor[cartesian]: remove unused get_stencil_id on Frontend by @romanc in #2589
  • feat[cartesian]: Enforce cartesian layout to be given precedence in allocation striding by @FlorianDeconinck in #2574
  • build[cartesian]: Bump pybind11 to 3.0.3 by @stubbiali in #2592
  • fix[next-dace]: Fix SDFG lowering of neighbors-reduce on field with non-zero origin by @edopao in #2569
  • feat[cartesian] Use default CXX all the time + Intel traceback for debug by @FlorianDeconinck in #2596
  • fix[next-dace]: Map stride of local dimension in nested SDFG by @edopao in #2593
  • feat[next-dace]: Updated MoveDataflowIntoIfBody by @philip-paul-mueller in #2531
  • fix[cartesian] No OpenMP on device compile by @FlorianDeconinck in #2602
  • build: Use dace release package from pypi by @edopao in #2600
  • fix[next]: cache dir construction and translation_cache lifetime by @havogt in #2604
  • Releasing v1.1.10 by @edopao in #2605

New Contributors

Full Changelog: v1.1.9...v1.1.10

GT4Py v1.1.9

01 Apr 11:47
554a24a

Choose a tag to compare

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

  • fix[next]: Fix bug in literal values when using Enums by @egparedes in #2551
  • ci: Fix daily CI job with explicit uv lock upgrades by @egparedes in #2552
  • feat[cartesian]: Remove redundant region syntax by @twicki in #2554
  • ci: Set Kubernetes memory request and limit to 64Gi on beverin by @havogt in #2556
  • fix[cartesian]: loop reordering in schedule tree by @romanc in #2546
  • fix[next-dace]: Suppress dace progress both in transformations and code generation by @edopao in #2557
  • build: update frozen dependencies by @havogt in #2548
  • fix[next]: Don't format non-visible Python code by @havogt in #2560
  • fix[cartesian]: Scalarization of temporaries by @romanc in #2558
  • build: add extra cuda13, rocm7; remove cuda11, rocm4,5 by @havogt in #2561
  • Releasing v1.1.9 by @havogt in #2562

Full Changelog: v1.1.8...v1.1.9

GT4Py v1.1.8

25 Mar 13:48
8fcb2cd

Choose a tag to compare

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

  • fix|build[cartesian]: Fix NVCC default flags for -O0 and refactor configuration out of config.py by @FlorianDeconinck in #2524
  • feat[next]: support Enums as constant namespaces for value inlining by @egparedes in #2515
  • ci: update github actions dependencies by @romanc in #2525
  • build: fix versioningit complaints in shallow git clones by @egparedes in #2518
  • fix[cartesian]: GCC 12/13 cxx default compile flag fix by @FlorianDeconinck in #2528
  • ci[cartesian]: restore OpenMP for macos on daily ci by @romanc in #2530
  • fix[next]: fix metrics source key context handlers by @egparedes in #2533
  • feat[cartesian]: Update debug backend to generate numpy >= 2.0 compatible code by @twicki in #2526
  • fix[next]: Reduce type ignores in client code by @DropD in #2484
  • docs[cartesian]: Update ADRs with recent development by @romanc in #2512
  • refactor[cartesian]: Separate horizontal and vertical interval parsers by @twicki in #2510
  • feat[cartesian] Add icpx to default compilers + distutils better imports by @FlorianDeconinck in #2542
  • fix[cartesian]: In the debug backend: Itemize lower dimensional fields also on the LHS for numpy >= 2.0 by @twicki in #2543
  • feat[next-dace]: Disable dace trace for SDFG transformation progress by @edopao in #2540
  • feat[next]: extend and refactor node fingerprinting utils by @egparedes in #2535
  • fix[next]: properly ignore ndarray embedded caches by @egparedes in #2536
  • feat[next-dace]: Introduce backend option to enable horizontal unit stride by @edopao in #2539
  • fix[eve]: lru_cache should not call eq when a key is provided by @tehrengruber in #2529
  • feat[next]: Embedded domain construction from dimension comparison by @havogt in #2532
  • feat[next-dace]: Less Verbose Warnings by @philip-paul-mueller in #2544
  • fix[next-dace]: Add entry-point synchronization by @edopao in #2527
  • fix[cartesian]: Support for data dims of size one in dace backends by @romanc in #2547
  • feat[next]: warn in case python is run without -O for non-embedded by @havogt in #2538
  • feat[next]: Expose lru_cache cache_clear functionality by @tehrengruber in #2549
  • Releasing v1.1.8 by @havogt in #2550

Full Changelog: v1.1.7...v1.1.8

GT4Py v1.1.7

11 Mar 16:25
ac27b77

Choose a tag to compare

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

  • feat[cartesian]: leverage integer power in dace backend by @romanc in #2502
  • test[cartesian]: attempt to stabilize test_ij_field_reset by @romanc in #2505
  • ci: don't format uv.lock file by @romanc in #2513
  • fix[next]: fix metrics collection when compiling the same program multiple times by @egparedes in #2504
  • fix[next]: Fix where & concat_where with named collections by @tehrengruber in #2511
  • perf[next-dace]: Enhance MoveDataflowIntoIfBody transformation by @iomaganaris in #2514
  • perf[cartesian]: reduce SDFG construction time in dace backends by @romanc in #2519
  • feat[cartesian]: Introduce default compiler flags by @FlorianDeconinck in #2520
  • perf[next-dace]: Allow more fusion of ConditionalBlocks by @iomaganaris in #2517
  • Releasing v1.1.7 by @edopao in #2523

Full Changelog: v1.1.6...v1.1.7

GT4Py v1.1.6

27 Feb 10:53
47f534b

Choose a tag to compare

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

  • fix[cartesian]: Disable OpenMP multithreading for DaCe backends by @FlorianDeconinck in #2491
  • perf[next-dace]: Only write to global on scan last level by @edopao in #2497
  • fix[next-dace]: Add debug information to dace build depending on config by @edopao in #2499
  • fix[cartesian]: Protect k_mask user variable by renaming internal mask by @FlorianDeconinck in #2501
  • Releasing v1.1.6 by @edopao in #2500

Full Changelog: v1.1.5...v1.1.6

GT4Py v1.1.5

25 Feb 07:19
5ebfd31

Choose a tag to compare

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

  • feat[next]: Compile time domains by @SF-N in #2173
  • build[cartesian]: update DaCe to get ScheduleTree based on mainline DaCe by @romanc in #2458
  • refactor[next]: rename and simplify the programming language concept in the toolchain by @egparedes in #2478
  • feat[next]: add atexit handler to dump the performance metrics at exit by @egparedes in #2481
  • feat[cartesian]: save compressed SDFGs by @romanc in #2485
  • fix[cartesian]: minified SDFG wihout duplication by @romanc in #2486
  • fix[cartesian]: don't upcast arguments of power function by @romanc in #2489
  • feat[next-dace]: Added gt_replace_concat_where_node() by @philip-paul-mueller in #2482
  • feat[next]: add support for array_namespace allocation by @havogt in #2442
  • feat[next-dace]: Support scan with single level output by @edopao in #2490
  • fix[next]: Fix default value for use_max_domain_range_on_unstructured_shift by @tehrengruber in #2493
  • fix[next-dace]: Emit warning in concat_where_mapper only in debug mode by @edopao in #2495
  • feat[next]: Integrate jax.numpy in testing by @havogt in #2488
  • Releasing v1.1.5 by @edopao in #2494

Full Changelog: v1.1.4...v1.1.5

GT4Py v1.1.4

16 Feb 09:44
83994e1

Choose a tag to compare

Summary of changes since v1.1.3

Cartesian

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

All changes

Full Changelog: v1.1.3...v1.1.4

GT4Py v1.1.3

22 Jan 10:29
56d2d2e

Choose a tag to compare

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

  • ci: fix daily CI task for python 3.14 by @egparedes in #2415
  • fix[next][dace]: Support lowering of let-lambdas inside an iterator expression by @edopao in #2420
  • fix[next][dace]: Remove isolated access nodes to unused lambda args by @edopao in #2418
  • build[next]: Update dace version by @edopao in #2419
  • fix[next][dace]: Remove isolated access nodes for unused args in let-lambda by @edopao in #2422
  • fix[next]: Reuse parameters in direct fo calls by @SF-N in #2375
  • fix[cartesian] Remove the vloop_sections for a more unqiue id(node) by @FlorianDeconinck in #2427
  • ci: try node sharing by @havogt in #2135
  • fix[next]: don't cse literal expressions (e.g. scan's init) by @havogt in #2421
  • feat[cartesian]: Layout & Schedule pairing for dace:X by @FlorianDeconinck in #2426
  • fix[next]: type checking with named collections in scans by @havogt in #2416
  • fix[next]: Support named collections with multiple output domains by @havogt in #2428
  • fix[next][dace]: Better usage of SubgraphContext during SDFG lowering by @edopao in #2413
  • build[next]: Update dace version to 2026_01_12 by @edopao in #2432
  • build[dace][next]: Added Custom Python Package for DaCe in GT4Py.Next by @philip-paul-mueller in #2423
  • Add NVTX marker instrumentation by @iomaganaris in #2345
  • feat[next][dace]: Enable async memory alloc on DaCe-HIP backend by @edopao in #2433
  • feat[cartesian]: numpy backend support for K iterator access by @FlorianDeconinck in #2430
  • fix[next][dace]: Make all node labels unique by @edopao in #2436
  • feat[next]: Enable unrolling scan loops by @iomaganaris in #2434
  • feat[dace][next] Updated gt_inline_nested_sdfg() by @philip-paul-mueller in #2385
  • feat[dace][next]: Deterministic gt_split_access_nodes() by @philip-paul-mueller in #2383
  • fix[next-dace]: Remove isolated node generated from splitting by @edopao in #2444
  • ci[cartesian]: Disable maocOS test in daily CI by @edopao in #2438
  • refactor[next]: Add config variable GT4PY_ADD_GPU_TRACE_MARKERS by @edopao in #2440
  • fix[next-dace]: Addressed Memlet Caching Issue by @philip-paul-mueller in #2445
  • fix[next]: Test cleanups by @havogt in #2441
  • refactor[cartesian]: remove dead code from backend/base.py by @romanc in #2446
  • fix[next-dace]: Update connectivities in fastcall by @edopao in #2449
  • build[next-dace]: Update DaCe Version to 2026_01_21 by @edopao in #2451
  • build[next-dace]: Use dace setting for compiler setting by @edopao in #2453
  • Releasing v1.1.3 by @edopao in #2448

Full Changelog: v1.1.2...v1.1.3

GT4Py v1.1.2

08 Dec 10:54
b925638

Choose a tag to compare

Summary of changes since v1.1.1

General

  • Added support for Python 3.14.

Cartesian

  • New feature: Runtime Interval Bounds

All changes

  • refactor[next][dace]: Simplify visitor of concat_where expressions by @edopao in #2394
  • fix[next][dace]: Use explicit dataflow in let-lambdas by @edopao in #2396
  • ci[next]: skip test_compile_variants_args_and_kwargs with dace backend and ROCM device by @edopao in #2400
  • build[dace][next]: Updated DaCe Dependency by @philip-paul-mueller in #2401
  • ci[next]: skip test_compile_variants_tuple with dace backend and ROCM device by @edopao in #2402
  • feat[cartesian]: Runtime Interval Bounds by @twicki in #2395
  • style[cartesian]: Cleanup in error messaging by @katrinafandrich in #2387
  • build[dace][next]: Updated DaCe Dependency by @philip-paul-mueller in #2405
  • bug[next]: Source location agnostic compilation hash by @tehrengruber in #2397
  • fix[next][dace]: Use symbol mapping for stride propagation across nested SDFGs by @edopao in #2404
  • ci/build/refactor[all]: python 3.14 support by @DropD in #2399
  • ci[cartesian,next]: Upgrade scipy min version for py3.14 by @edopao in #2408
  • refactor[eve,next]: UIDGenerator -> SequentialIDGenerator by @havogt in #2407
  • fix[next]: apply cse in fuse_as_fieldop by @havogt in #2257
  • refactor[next]: unroll_reduce deduce shift via typesystem by @havogt in #2267
  • build: remove support for python releases breaking networkx by @egparedes in #2410
  • fix[next][dace]: Unconditional execution of else-branch in if-statements by @edopao in #2412
  • refactor[next][dace]: Move SDFG-lowering modules into subpackage by @edopao in #2409
  • Releasing v1.1.2 by @havogt in #2414

New Contributors

Full Changelog: v1.1.1...v1.1.2