Skip to content

Releases: GridTools/gt4py

GT4Py v1.0.4

20 Sep 13:25
b6d4427
Compare
Choose a tag to compare

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

  • feature[next]: Temporary extraction heuristics by @tehrengruber in #1341
  • fix[next]: Detection of ROCM vs CUDA gpu runtime by @edopao in #1448
  • ci: Update CI config to use new template for container build by @edopao in #1450
  • feat[next]: Slicing field to 0d to return field not scalar by @nfarabullini in #1427
  • feature[next]: Improve CollapseTuple pass by @tehrengruber in #1350
  • fix[next][dace]: Bugfix in neighbor reduction by @edopao in #1456
  • refactor[next]: Change foast lowering from iterator of tuple to tuple of iterator by @tehrengruber in #1449
  • fix[next]: Disable collapse tuple if propagation by @tehrengruber in #1454
  • fix[next][dace]: Bugfix for nested neighbor reduction by @edopao in #1457
  • feat[next][dace]: Use gt4py symbols for field size as dace array shape by @edopao in #1458
  • feature[next]: toolchain configuration interfaces by @DropD in #1438
  • feat[next][dace]: Remove offsets in connectivity arrays by @edopao in #1460
  • build: Remove duplicated factory-boy dependency. by @egparedes in #1465
  • feat[next][dace]: Remove array offsets by @edopao in #1459
  • feat[next]: Embedded support for skip value connectivities by @havogt in #1441
  • feat[next]: new domain slice syntax by @nfarabullini in #1453
  • feat[next]: config improvements by @DropD in #1461
  • fix[next][dace]: Fix translation of if statement from tasklet to inter-state condition by @edopao in #1469
  • feat[cartesian]: Setting extra compile args and DaCe block size via env variables by @stubbiali in #1462
  • bug[next]: Fix reverse operators in embedded by @havogt in #1467
  • build: fix tox requirements task and hypothesis setting with updated version by @egparedes in #1472
  • feature[next]: Fix caching stability by @tehrengruber in #1473
  • feat[next][dace]: make canonical representation of field domain optional by @edopao in #1476
  • refactor[next]: Refactor workflow based executors and move the backend class. by @DropD in #1470
  • feat[next][dace]: Add gt4py workflow for the DaCe backend by @edopao in #1477
  • fix[next][dace]: accept runtime lift_mode as argument to dace backend by @edopao in #1481
  • feat[cartesian]: read-only data dims direct access & Fields by @FlorianDeconinck in #1451
  • style: Fix leftovers of moving lint infrastructure to ruff by @egparedes in #1480
  • feature[next]: Inline center deref lift vars by @tehrengruber in #1455
  • bug[next]: Increase recursion limit in TraceShift pass by @tehrengruber in #1482
  • bug[next]: Fix CSCS CI by pinning cupy to 12.3.0 by @tehrengruber in #1485
  • bug[next]: Mark cupy tests as requires gpu by @tehrengruber in #1483
  • feat[next]: variadic generic type by @nfarabullini in #1486
  • refactor[next]: workflowify PAST -> ITIR toolchain step by @DropD in #1479
  • style[next]: stricter typing in ffront by @havogt in #1492
  • feat[next]: concat_where for boundary conditions by @havogt in #1468
  • style[next]: improve typing in next.type_translation by @havogt in #1493
  • bug[next]: fix _Dedup for tuples in type_inference by @havogt in #1495
  • style[next]: more strict typing by @havogt in #1494
  • fix[next][dace]: Fixes to DaCe backend to support latest ITIR by @edopao in #1499
  • feature[next]: Validate no dynamic offsets by @tehrengruber in #1504
  • build: Update mypy configuration by @egparedes in #1505
  • refactor[next]: NamedRange/NamedIndex tuple to NamedTuple by @nfarabullini in #1490
  • bug[eve]: Preserve annex None value in visitors by @tehrengruber in #1508
  • feature[next]: Improve ITIR constant folding by @tehrengruber in #1510
  • bug[next]: Improve ITIR Pretty Printer by @tehrengruber in #1509
  • refactor[next]: make function definition -> PAST into a workflow step by @DropD in #1500
  • bug[next]: Fix gtfn code generation for negative literals by @tehrengruber in #1511
  • feat[next][dace]: Remove old dace backend (replaced by workflow infrastructure) by @edopao in #1503
  • build: add ruff to the automated requirement generation workflow by @egparedes in #1497
  • build: bump minimum version of typing_extensions requirement by @egparedes in #1512
  • Migrate from discontinued bump2version to bump-my-version by @egparedes in #1514
  • feat[next]: workshop material and docs field Dims type hint update by @nfarabullini in #1489
  • feat[next][dace]: Filter unused connectivity tables by @edopao in #1502
  • bug[next]: fix minimum version of bump-my-version by @havogt in #1515
  • style: update requirements and change ruff-format style to stable by @egparedes in #1517
  • style: minimize vertical space style by @egparedes in #1518
  • fix[next]: replace extended_runtime_checkable workaround by upgrading typing_extensions by @egparedes in #1519
  • build: bump required typing_extensions version to skip buggy versions by @egparedes in #1522
  • fix[next]: Fix Program.itir by @DropD in #1523
  • feat[next][dace]: Several features for icon4py-backend integration by @edopao in #1525
  • refactor[next]: itir embedded: cleaner closure run by @havogt in #1521
  • refactor[next]: Fencil to itir.Program for gtfn by @havogt in #1524
  • refactor[next]: Use type specification for itir.Literal by @tehrengruber in #1529
  • refactor[next]: Use is_call_to instead of equality comparison with itir.Ref. by @tehrengruber in #1532
  • test[next]: delete cppbackend_tests by @havogt in #1534
  • refactor[next]: move lift_mode itir test fixture into program_processor by @havogt in #1533
  • feat[cartesian]: gtc cuda backend deprecation by @FlorianDeconinck in #1498
  • refactor[next]: workflowify step3 by @DropD in #1516
  • ci[cartesian]: env var on CSCS-CI to suppress cuda backend deprecation error by @DropD in #1541
  • ci: define pytest addopts settings as env var in tox config by @egparedes in #1542
  • feat[cartesian]: Feedback when a bad backend is selected by @FlorianDeconinck in #1544
  • feat[next]: extend embedded implementation of premap() by @egparedes in #1501
  • build: update frozen dependencies by @havogt in #1543
  • refactor[next]: cleaner toolchain by @DropD in #1537
  • feat[next][dace]: Modify name of stride symbols by @edopao in #1548
  • ci: add manual trigger for daily...
Read more

GT4Py v1.0.3

07 Feb 15:48
75fede7
Compare
Choose a tag to compare

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

  • fix[next][dace]: Use constant shape for neighbor tables in local dimension by @edopao in #1422
  • feat[next][dace]: use new LoopRegion construct for scan operator by @edopao in #1424
  • fix[next][dace]: Remove usage of deprecated API dace.Memlet.simple by @edopao in #1425
  • ci: test jupyter notebooks by @havogt in #1426
  • feat[next]: Enable tests for embedded with cupy by @havogt in #1372
  • fix[next][dace]: Bugfix in deref (dynamic memory allocation) by @edopao in #1430
  • build: update min requirements by @havogt in #1435
  • test[next]: fix obsolete asarray by @havogt in #1436
  • test[next]: Add unit test for embedded inverse_image and fix bugs by @egparedes in #1432
  • build: Update gridtools-cpp version to 2.3.2 by @havogt in #1437
  • feat[next]: add tests with mesh with skip values by @havogt in #1433
  • fix[cartesian]: Add missing cstdint header in gtcpp codegen by @tehrengruber in #1439
  • feat[next][dace]: Modified the file caching. by @philip-paul-mueller in #1434
  • bug[next]: allow fields of different sizes in tuple in itir embedded by @havogt in #1442
  • fix[next][dace]: Fix for neighbor reduction with skip values by @edopao in #1443
  • feat[next][dace]: Add support for lift expressions in neighbor reductions (no unrolling) by @edopao in #1431
  • feat[next][dace]: DaCe support for temporaries by @edopao in #1351
  • bug[next]: fix field_operator caching by @havogt in #1445
  • build: Update requirements versions and scripts to support 3.11 by @egparedes in #1444
  • build: Update deployment action with trusted publisher by @havogt in #1423
  • release: v1.0.3 by @havogt in #1446

Full Changelog: v1.0.2...v1.0.3

GT4Py v1.0.2

24 Jan 13:23
11f9c1c
Compare
Choose a tag to compare

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

Read more

GT4Py v1.0.1

20 Feb 11:50
98e7cad
Compare
Choose a tag to compare

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

GT4Py v1.0.0

21 Dec 18:24
36c487a
Compare
Choose a tag to compare

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.

Cartesian GT4Py v0.1.0

12 Oct 11:28
d0908cd
Compare
Choose a tag to compare
Pre-release

Last development version using old-style Storage class.