Skip to content

feat[next-dace]: bump to dace v2.0-beta1 - #2937

Open
edopao wants to merge 35 commits into
mainfrom
dace_noview_nested_sdfg
Open

edopao wants to merge 35 commits into
mainfrom
dace_noview_nested_sdfg

Conversation

@edopao

@edopao edopao commented Oct 5, 2026 •

Copy link
Copy Markdown
Contributor

Update dace to v2.0-beta1, which introduces the concept of no-view nested SDFG: the data descriptor for global arrays inside a nested SDFG have to be the same as the outer data descriptors.

ICON-blueline performance comparison w.r.t. main branch:
bench_blueline_stencil_compute

@edopao
edopao added this pull request to stack #2935 October 5, 2026 07:23
@edopao
edopao force-pushed the dace_noview_nested_sdfg branch from d4c4686 to 3b0658d Compare October 5, 2026 13:01
Base automatically changed from bump_dace_version to main October 5, 2026 13:21
@edopao
edopao force-pushed the dace_noview_nested_sdfg branch from 3b0658d to 788525e Compare October 5, 2026 13:21
@edopao
edopao removed this pull request from stack #2935 October 5, 2026 13:22
@edopao

edopao commented Oct 9, 2026

Copy link
Copy Markdown
Contributor Author

cscs-ci run default

1 similar comment
@edopao

edopao commented Oct 9, 2026

Copy link
Copy Markdown
Contributor Author

cscs-ci run default

@edopao
edopao force-pushed the dace_noview_nested_sdfg branch from 1b31304 to d72f949 Compare October 9, 2026 14:54
@edopao

edopao commented Oct 9, 2026

Copy link
Copy Markdown
Contributor Author

cscs-ci run default

1 similar comment
@edopao

edopao commented Oct 9, 2026

Copy link
Copy Markdown
Contributor Author

cscs-ci run default

@edopao

edopao commented Oct 9, 2026

Copy link
Copy Markdown
Contributor Author

The failure in the RoCM CI (test_scan.py::test_solve_triag[dace.run_dace_gpu]) shows a problem in the lowering/optimization: some arrays are dynamically allocated inside the GPU kernel. This is supported in CUDA, not in HIP. However, it should never happen: it is a performance issue.

@edopao

edopao commented Oct 12, 2026

Copy link
Copy Markdown
Contributor Author

cscs-ci run default

2 similar comments
@edopao

edopao commented Oct 12, 2026

Copy link
Copy Markdown
Contributor Author

cscs-ci run default

@edopao

edopao commented Oct 12, 2026

Copy link
Copy Markdown
Contributor Author

cscs-ci run default

@edopao

edopao commented Oct 12, 2026

Copy link
Copy Markdown
Contributor Author

cscs-ci run dace-determinism

@edopao

edopao commented Oct 13, 2026

Copy link
Copy Markdown
Contributor Author

cscs-ci run default

@edopao

edopao commented Oct 13, 2026

Copy link
Copy Markdown
Contributor Author

cscs-ci run dace-determinism

@edopao

edopao commented Oct 13, 2026

Copy link
Copy Markdown
Contributor Author

cscs-ci run default

@edopao
edopao force-pushed the dace_noview_nested_sdfg branch from 8c085c6 to 02259e7 Compare October 13, 2026 14:51
@edopao
edopao added this pull request to stack #2945 October 13, 2026 14:57
@edopao

edopao commented Oct 13, 2026

Copy link
Copy Markdown
Contributor Author

cscs-ci run default

@edopao

edopao commented Oct 13, 2026

Copy link
Copy Markdown
Contributor Author

cscs-ci run dace-determinism

@edopao

edopao commented Oct 16, 2026

Copy link
Copy Markdown
Contributor Author

cscs-ci run default

@edopao

edopao commented Oct 16, 2026

Copy link
Copy Markdown
Contributor Author

cscs-ci run dace-determinism

@edopao

edopao commented Oct 23, 2026

Copy link
Copy Markdown
Contributor Author

cscs-ci run default

@edopao

edopao commented Oct 23, 2026

Copy link
Copy Markdown
Contributor Author

cscs-ci run dace-determinism

@edopao

edopao commented Oct 23, 2026

Copy link
Copy Markdown
Contributor Author

cscs-ci run default

@edopao

edopao commented Oct 23, 2026

Copy link
Copy Markdown
Contributor Author

cscs-ci run dace-determinism

@edopao edopao changed the title feat[next-dace]: bump to dace v2.0 feat[next-dace]: bump to dace v2.0-beta1 Oct 26, 2026
@edopao

edopao commented Oct 26, 2026

Copy link
Copy Markdown
Contributor Author

cscs-ci run default

@edopao

edopao commented Oct 26, 2026

Copy link
Copy Markdown
Contributor Author

cscs-ci run dace-determinism

@edopao
edopao marked this pull request as ready for review October 26, 2026 16:22
@edopao

edopao commented Oct 26, 2026

Copy link
Copy Markdown
Contributor Author

cscs-ci run default

@philip-paul-mueller philip-paul-mueller left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It generally looks okay, but there are some things that must be changed.

if isinstance(arg, IteratorExpr) and use_full_shape:
if isinstance(arg, IteratorExpr):
return IteratorExpr(inner_node, arg.gt_dtype, arg.field_domain, arg.indices)
elif isinstance(arg_expr, MemletExpr):

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am just wondering why this case was not here before.

Comment on lines +449 to +451
If a transformation connects different data to the connector, it has to restate
the connector itself, see `restate_nested_sdfg_connector()`, because only the
transformation knows where the old data is located inside the new one.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe I am too tired, but this sounds strange to me.

passed_symbols.update(
str(sym) for off in ss_offset if dace_sym.issymbolic(off) for sym in off.free_symbols
)
for sym in sorted(passed_symbols):

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I looked at the dace source code and to me it looks like as symbol renaming is performed upon validation.
So this whole thing here is technically not needed or do I miss something.

Comment on lines +727 to +729
# A nested SDFG connector has to be equivalent to the data it is connected to.
# Thus `i0` is still `a`, but `o0` has been restated as `e`, into which the
# nested SDFG now writes directly, at the offset of the removed copy chain.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this sentence is used a bit too much here.

Comment on lines +108 to +110
SDFG has to be equivalent to the data it is connected to, so it cannot write
into an element of the outer array directly. This is also how the lowering
writes the result of an if-expression.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes this sentences is written way too much here all over the place.

assert str(nsdfg.symbol_mapping[exp_stride]) == exp_stride

# Now we propagate `a` and `b`, but not `c`.
# Now we change the strides of `a1` and propagate them, but not the ones of `c1`.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why is b1 no longer modified?

@edopao

edopao commented Oct 27, 2026

Copy link
Copy Markdown
Contributor Author

cscs-ci run default

This branch has not been deployed

No deployments
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