Skip to content

feat[next-dace]: Lowering mixed-GTIR to SDFG#2467

Draft
edopao wants to merge 59 commits into
GridTools:mainfrom
edopao:dace_mixed_ir
Draft

feat[next-dace]: Lowering mixed-GTIR to SDFG#2467
edopao wants to merge 59 commits into
GridTools:mainfrom
edopao:dace_mixed_ir

Conversation

@edopao
Copy link
Copy Markdown
Contributor

@edopao edopao commented Jan 30, 2026

We introduce a configuration option in the dace backend to run some transformations on the GTIR representation before lowering it to SDFG. The new configuration (apply_common_transform=True) is tested as a new dace backend (dace_cpu_gt).

@edopao edopao changed the title feat[next-dace]: Try mixed-GTIR lowering to SDFG feat[next-dace]: Lowering mixed-GTIR to SDFG May 6, 2026
@edopao
Copy link
Copy Markdown
Contributor Author

edopao commented May 6, 2026

cscs-ci run default

edopao added a commit that referenced this pull request May 12, 2026
This PR contains 3 kinds of changes:

1. A bugfix in mapping the stride of local dimension into the nested
SDFG of if expressions.
```
inner_desc = dace.data.Array(
    dtype=arg_desc.dtype,
    shape=(arg_desc.shape[local_dim_pos],),
    strides=(arg_desc.strides[local_dim_pos],),
)
```

2. Addition of connectivities. This is needed to support the pattern
with `can_deref` expressions (not part of this PR, see #2467). After
GTIR transformations, which unroll the neighbors loops, a common pattern
in grids with skip values is `if(can_deref(a, V2E), deref(a(V2E)) + 2,
0)`.

3. Renaming of function parameters.


Blueline performance is in pair with baseline.
@edopao
Copy link
Copy Markdown
Contributor Author

edopao commented May 28, 2026

cscs-ci run default

…bol clashes with an inner data descriptor

A tasklet being relocated may reference a symbol from the outer SDFG as
a free variable (no input connector). If the nested SDFG already contains
a data descriptor with the same name, the relocated tasklet would silently
read that inner descriptor instead of the outer symbol, producing wrong
results.

Fix _check_for_data_and_symbol_conflicts to return False whenever any
symbol in required_symbols shares its name with a data descriptor in the
nested SDFG. A regression test is included.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@edopao
Copy link
Copy Markdown
Contributor Author

edopao commented May 29, 2026

cscs-ci run default

edopao added 2 commits June 1, 2026 12:24
The CI on Beverin vCluster now requires production credentials.
It was using TDS credentials before.
@edopao
Copy link
Copy Markdown
Contributor Author

edopao commented Jun 1, 2026

cscs-ci run default

1 similar comment
@edopao
Copy link
Copy Markdown
Contributor Author

edopao commented Jun 1, 2026

cscs-ci run default

@edopao
Copy link
Copy Markdown
Contributor Author

edopao commented Jun 1, 2026

cscs-ci run default

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.

2 participants