-
Notifications
You must be signed in to change notification settings - Fork 130
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
Complete Transition to Control Flow Regions #1676
base: main
Are you sure you want to change the base?
Conversation
- StateFusionExtended - ArrayElimination - OptionalArrayInference
Now that 1.0 is released it is time to revisit this. I would be in favor of merging this ASAP due to the humongous change, which makes divergence a real issue. There are additionally several future additions which are at this point based on this branch, further complicating things when left unmerged. @tbennun thoughts? |
Sounds good, why are some tests failing? |
I have started a review but I don't think I will be able to finish it before sometime next week. |
@tbennun The only tests that are failing are expected to fail (FV3):
|
Why are they failing though (with the missing symbol)? Is this strictly a GT4Py API use problem or is there something else we can do with used_symbols? |
This is very hard to debug, but I did some investigating. I suspect the error observed in the pipeline is a delayed symptom of one (or more likely, many) earlier issues. When I set up the entire pyFV3-DaCe CI pipeline locally and attempt running it, there are various issues that appear before I even get to the error observed here. For instance:
Seeing this I conclude that this is not something we can easily address in this PR, but rather there will need to be a concentrated effort to adapt GT4Py to DaCe 1.x individually. The errors in the CI are not verbose or fine grained enough to fix these issues. I would argue that part of the motivation behind the 1.0 release was to be able to accept such a breakage on main, since there is a stable - and still maintainable - version of DaCe for GT4Py to use while adapting to DaCe 1.x ( |
@FlorianDeconinck tagging you so you are aware of this discussion and can chime in :-) |
Quick notes:
As always - and with 1.0 we indeed have a safe place to be- we are not here to block progress. We can unhook the test. My only ask would be to retain some future-Phillipp time so we can have support in moving to the Control Flow Regions |
Absolutely, I am happy to help in adapting this change. In most places the adaptation is rather easy and involves small API changes. |
@tbennun One thing to note for us, is how this potentially interact with the |
This PR completes the transition to hierarchical control flow regions in DaCe. By nature of the significance in change that is brought through the transition to hierarchical control flow regions, this PR is rather substantial. An exhaustive listing of all adaptations is not feasible, but the most important changes and adaptations are listed below:
ControlFlowRegionPass
: This pass works likeStatePass
orScopePass
, and can be extended to write a pass that applies recursively to each control flow region of an SDFG. An option can be set to either apply bottom-up or top-down.Note: The FV3 integration test fails and will continue to fail with this PR, since GT4Py cartesian, which is used by PyFV3, does not consider experimental blocks in their design. Since DaCe v1.0.0 will be released without this PR in it, my suggestion is to limit the application of the FV3 integration and regression tests to PRs which are made to a specific v1.0.0 maintenance branch, which is used for fixes to v1.0.0.