Skip to content

refactor[cartesian]: skip LiftTrivalIf in sdfg.simplify() pipeline#2710

Open
romanc wants to merge 1 commit into
GridTools:mainfrom
romanc:romanc/dace-simplify-skip-lift-trivial-ifs
Open

refactor[cartesian]: skip LiftTrivalIf in sdfg.simplify() pipeline#2710
romanc wants to merge 1 commit into
GridTools:mainfrom
romanc:romanc/dace-simplify-skip-lift-trivial-ifs

Conversation

@romanc

@romanc romanc commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

Description

PR #2635 bumped the DaCe version from alpha3 to alpha4. This brought a new simplify pass: LiftTrivialIf which aims at inspecting the conditions of if statements and inlines code under trivially true/false conditions, see spcl/dace#2138.

The new pass increases the runtime of simplify such that it is unusable for large-scale / real-world SDFGs, e.g. parsing the acoustics loop of fv3 in NDSL with dace orchestration will take >90min with the new pass compared to 10-15min without. In total, the runtime of the acoustics translate test blows up from ~30min to nearly 5h with that pass.

Preliminary, crude analysis shows that the bulk of the additional time is spent in the simplify step of sympy when the condition is evluated. This puts the slowdown at the heart of the pass, making an easy fix unlikely.

This PR suggests to just skip the new pass until the runtime drops to usable levels.

Requirements

  • All fixes and/or new features come with corresponding tests.
    N/A. Covered by existing test cases.
  • Important design decisions have been documented in the appropriate ADR inside the docs/development/ADRs/ folder.
    N/A

PR GridTools#2635 bumped the DaCe version
from alpha3 to alpha4. This brought a new simplify pass: `LiftTrivialIf`
which aims at inspecting the conditions of if statements and inlines
code under trivially true/false conditions.

The new pass increases the runtime of simplify such that it is unusable
for large-scale / real-world SDFGs, e.g. parsing the acoustics loop of
fv3 in NDSL with dace orchestration will take >90min with the new pass
compared to 10-15min without. In total, the runtime of the acoustics
translate test blows up from ~30min to nearly 5h with that pass.

Preliminary, crude analysis shows that the bulk of the additional time
is spent in the simplify step of sympy when the condition is evluated.
This puts the slowdown at the heart of the pass, making an easy fix
unlikely.

This PR suggests to just skip the new pass until the runtime drops to
usable levels.
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.

1 participant