Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Test GTIR-DaCe backend #638

Draft
wants to merge 32 commits into
base: main
Choose a base branch
from
Draft

Test GTIR-DaCe backend #638

wants to merge 32 commits into from

Conversation

edopao
Copy link
Contributor

@edopao edopao commented Jan 10, 2025

Known issues:

  • Primitive concat_where needed in TestFusedVelocityAdvectionStencil15To18, test marked as xfail
  • Very slow lowering in atmosphere/advection module, all stencil tests temporarily disabled

Blocking issues:

  • GPU optimization errors:
    test_fused_velocity_advection_stencil_1_to_7.py::TestFusedVelocityAdvectionStencil1To7::test_TestFusedVelocityAdvectionStencil1To7_benchmark[backend=dace_gpu-grid=icon_grid] - ValueError: Failed to compute the inner strides.
    test_fused_velocity_advection_stencil_8_to_13.py::TestFusedVelocityAdvectionStencil8To13::test_TestFusedVelocityAdvectionStencil8To13_benchmark[backend=dace_gpu-grid=icon_grid] - ValueError: Failed to compute the inner strides.
  • Validation error in dycore GPU test (works on CPU):
    test_compute_exner_from_rhotheta.py::TestComputeExnerFromRhotheta::test_TestComputeExnerFromRhotheta[backend=dace_gpu-grid=simple_grid] - AssertionError: Validation failed for 'theta_v'
  • Errors in DaCe Orchestration
  • Segmentation fault errors in tests/dycore_tests (never tested before with dace backend)

Depends on latest GT4Py main branch + lowering of scan PR (GridTools/gt4py#1776).

@edopao
Copy link
Contributor Author

edopao commented Jan 15, 2025

cscs-ci run dace

philip-paul-mueller added a commit to philip-paul-mueller/gt4py that referenced this pull request Jan 15, 2025
The bug was because the `DistributedBufferRelocator` transformation did not check if its insertion would create a read-write conflict.
This commit adds such a check, that is, however, not very sophisticated and needs some improvements.
However, the example /`model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_exner_from_rhotheta.py`) where it surfaced, does hold more challenges.
The main purpose of this commit is to unblock further development in ICON4Py.

Link to ICON4Py PR: C2SM/icon4py#638
@philip-paul-mueller
Copy link
Collaborator

The GT4Py PR should solve the issue with test_compute_exner_from_rhotheta.py::TestComputeExnerFromRhotheta::test_TestComputeExnerFromRhotheta.

philip-paul-mueller added a commit to GridTools/gt4py that referenced this pull request Jan 16, 2025
This PR fixes an error that was reported by Edoardo (@edopao).
The bug was because the `DistributedBufferRelocator` transformation did
not check if its insertion would create a read-write conflict. This
commit adds such a check, that is, however, not very sophisticated and
needs some improvements. However, the example
/`model/atmosphere/dycore/tests/dycore_stencil_tests/test_compute_exner_from_rhotheta.py`)
where it surfaced, does hold more challenges. The main purpose of this
PR is to unblock further development in ICON4Py.

Link to ICON4Py PR: C2SM/icon4py#638
Copy link

Mandatory Tests

Please make sure you run these tests via comment before you merge!

  • cscs-ci run default
  • launch jenkins spack

Optional Tests

To run benchmarks you can use:

  • cscs-ci run benchmark

To run tests and benchmarks with the DaCe backend you can use:

  • cscs-ci run dace

In case your change might affect downstream icon-exclaim, please consider running

  • launch jenkins icon

For more detailed information please look at CI in the EXCLAIM universe.

philip-paul-mueller added a commit to GridTools/gt4py that referenced this pull request Jan 17, 2025
)

NestedSDFG essentially allows to perform some slices, there are
technically three chases:
- The data container on the inside has a smaller rank than the one on
the outside, thus some dimensions were removed.
- The data container on the inside has the same rank than the one on the
outside.
- The data container on the inside has a larger rank than the one on the
outside, thus some dimensions were added.

The last case is not handled, as it does not happens in GT4Py. Before,
the first and second case were handled together, but it was realized
that the second case was not implemented properly and it was added
explicitly.

This PR fixes the issues with `TestFusedVelocityAdvectionStencil1To7`
and `TestFusedVelocityAdvectionStencil8To13` in
[ICON4Py#638](C2SM/icon4py#638), however, the
later test now fails with a segmentation fault.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants