Skip to content

GT4Py v1.0.4

Latest
Compare
Choose a tag to compare
@havogt havogt released this 20 Sep 13:25
· 63 commits to main since this release
b6d4427

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-ci by @havogt in #1558
  • ci: fix daily min-requirements by @havogt in #1557
  • ci: use public path for cscs-ci images by @havogt in #1560
  • ci: cscs-ci upgrade boost to latest by @havogt in #1561
  • feat[cartesian]: Specify compiler optimization level and flags via env variables by @stubbiali in #1491
  • build: bump DaCe package version by @edopao in #1556
  • refactor[next]: new ITIR type inference by @tehrengruber in #1531
  • build[next]: Compatibility with nanobind 2.x by @havogt in #1547
  • feat[storage]: add support for numpy and cupy 2.0 by @egparedes in #1563
  • refactor[next]: embedded with itir.Program by @havogt in #1530
  • bug[next]: Fix missing visit call in call to cast builtin in ITIR type inference by @tehrengruber in #1566
  • feat[next]: Check fencil/program args in ITIR type inference by @tehrengruber in #1565
  • feat[next][dace]: Use DaCe SDFG fastcall by @edopao in #1562
  • Add Gitlab CI/CD targets for gh200 by @edopao in #1546
  • feat[cartesian]: add extra_link_args for flexible support of various compiler build by @xyuan in #1552
  • bug[next]: Add assert for OOB access by @tehrengruber in #1571
  • build: update frozen requirements by @havogt in #1572
  • test[next]: Use pytest marker to skip GTIR test (fix spack build) by @edopao in #1575
  • feat[next][dace]: Skeleton of GTIR DaCe backend by @edopao in #1538
  • ci[next]: Enable Github CI on GTIR branch by @tehrengruber in #1581
  • ci: Disable CSCS-CI on gh200 nodes by @edopao in #1585
  • fix[next]: Fix size temporary size computation by @tehrengruber in #1584
  • feat[next][dace]: GTIR-to-SDFG lowering of shifts by @edopao in #1577
  • test[next]: Start using requires_dace marker (as cartesian tests already do) by @edopao in #1588
  • feat[next]: GT4Py programs as DaCe SDFGConvertibles by @kotsaloscv in #1527
  • feat[next][dace]: GTIR-to-SDFG lowering of let-lambdas by @edopao in #1589
  • feat[next][dace]: GTIR-to-SDFG lowering of neighbors and reduce by @edopao in #1597
  • ci: Re-enable CI on GH200 nodes by @edopao in #1596
  • fix[next][dace]: Bugfix for neighbors reduction with lift expressions by @edopao in #1599
  • ci: GH200 test instability by @edopao in #1600
  • build: update dependencies, remove deprecated types-all by @havogt in #1605
  • ci: Disable CI job for GH200 by @edopao in #1614
  • License Change to BSD-3-Clause by @havogt in #1613
  • feat[next][dace]: GTIR-to-SDFG lowering of if-builtin on values by @edopao in #1602
  • feat[next][dace]: GTIR-to-SDFG lowering of cast_ builtin by @edopao in #1610
  • feat[next]: Extend constant folding for literals and add respective test cases by @SF-N in #1564
  • feat[next][dace]: Fix GTIR-to-SDFG lowering for failing tests by @edopao in #1609
  • GTIR domain inference by @SF-N in #1568
  • feat[next]: Lowering foast/past to GTIR by @havogt in #1569
  • feat[next]: allow import of Dimensions from modules within gt4py code by @nfarabullini in #1615
  • feat[next][dace]: GTIR-to-SDFG lowering of let-lambdas (using NestedSDFG) by @edopao in #1601
  • refactor: Remove stale references to flake8 by @romanc in #1625
  • ci: enhance CI workflows and make them consistent (tox and GH actions) by @egparedes in #1590
  • feat[next][dace]: Build clean nestedSDFG without unused data connectors by @edopao in #1628
  • docs: Fixed typos in ADRs and a docstring by @romanc in #1627
  • refactor[cartesian]: Enable MaskInlining in gt4yp - DaCe bridge by @romanc in #1624
  • fix[cartesian]: Fix serialize default behavior when Pickled property was not saved by @FlorianDeconinck in #1629
  • feat[next][dace]: Dace fieldview transformations by @philip-paul-mueller in #1594
  • test[dace]: Add skip rules for dace optional dependency by @edopao in #1635
  • bug[next]: enable scalar math operations in embedded by @egparedes in #1636
  • feature[next]: Extend cartesian offset syntax by @SF-N in #1484
  • test[dace]: Fix skip rules for dace optional dependency by @edopao in #1637
  • refactor: use modern-style type hints by @romanc in #1632
  • refactor[cartesian]: readability improvements in gtir -> oir conversion and other cleanups by @romanc in #1630
  • style: Remove stale references to isort by @romanc in #1631
  • bug[next]: Fix implicit offset provider by @tehrengruber in #1638
  • changed organization from C2SM to EXCLAIM in authors by @nfarabullini in #1640
  • feat[next]: Type inference: Add support for tuple arguments in cond by @tehrengruber in #1626
  • feature[next]: Nested scalars args & cleanup by @tehrengruber in #1540
  • bug[next]: fix lowering of astype on tuples containing scalars by @havogt in #1642
  • feat[next]: Prepare TraceShift pass for GTIR by @tehrengruber in #1592
  • feat[next]: Refactor CSE pass to support ITIR.Program by @tehrengruber in #1646
  • chore: add pre-commit hook for the tach tool to control dependencies by @egparedes in #1641
  • feat[dace]: Modified gt_simplify() by @philip-paul-mueller in #1647
  • feat[next][dace]: generic scalar expressions as fieldop args by @edopao in #1633
  • feat[next][dace]: add workflow for dace fieldview backend by @edopao in #1623
  • feat[dace]: Custom SDFG inline pass by @philip-paul-mueller in #1649
  • bug[next]: Enable test_ffront_lap again by @tehrengruber in #1652
  • feat[next]: domain inference for let, make_tuple, tuple_get, cond by @SF-N in #1591
  • Releasing 1.0.4 version. by @havogt in #1654

New Contributors

Full Changelog: v1.0.3...v1.0.4