-
Notifications
You must be signed in to change notification settings - Fork 146
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
Legion: regression in padded constraint conflicts #1537
Comments
That's not a bug. A delta of |
I've evidence that your version of the function allows the runtime to map region requirements with padding constraints on instances without padding. Note that such mappings were not allowed before |
Non-zero padding constraints? Also, you're sure the safe mapper checks are on? They are off by default in release mode. Without them the runtime will let you do all sorts of illegal things. It's worth noting that the old code was overly strict compared to the documented semantics. If you were relying on |
If you want we can try switching the semantics so that |
The semantics Note 1: your new function would work as expected if you start checking if the layout constraints of the selected task variant conflict with the layout constraints of the selected instance Note 2: the semantics
regardless of the value of |
You missed this part: https://gitlab.com/StanfordLegion/legion/-/blob/master/runtime/legion/legion_instances.cc?ref_type=heads#L3909-3918 |
Do you want a reproducer on sapling? |
BTW, your comment is incorrect. If an instance is created with padding constraints only in one direction, it does not go through that path.
the runtime will most likely try to create an instance with 3 points of padding on the
the runtime will not recognize that the instance created for the previous task is not compatible with this layout constraint. |
If you want to keep your version of the conflict check, you will need to apply the following patch
Note that also the following fix is required for instances created with delta equal to
|
That's undefined behavior. You should never be trying to create an instance with "don't-care" padding. I'm just going to reverse the polarity of "don't care" and "no constraints" so that nobody else makes the same mistake that you did. |
Pull and try again. |
You still need to apply the patch above to |
Look again, I already did that. |
Although I still think that should be undefined behavior/an error. |
the execution of the unit test still fails with
|
I pushed a fix to the |
The fix was merged into the control replication branch. |
There is still a problem. An unset padding constraint conflucts with a zero padding constraint as you can see in the following case:
This issue prevents a region requirement without padding constraints from being mapped on a region mapped with zero padding using the current logic available in the default mapper (https://gitlab.com/StanfordLegion/legion/-/blob/master/runtime/mappers/default_mapper.cc#L1976) This is fixed by the following patch
|
I pushed a less restrictive change that will at least handle the case. Conflict testing should only fail if both constraint sets strictly conflict with each other. If either one is "don't care" then they shouldn't ever conflict with each other. For example, if either constraint has a zero dimension, that is considered a "don't care" and therefore will never be able to conflict with another set of constraints. |
Sounds good. Thanks for fixing the issue |
Thanks for dealing with the churn. It was necessary to make the implementation more robust. |
One of the HTR unit tests has shown that
1626f5638181c210bc1b74c96838b05e5339ba6d
has introduced a bug in the detection of the conflicts between padded constraints. In particular, if a constraint with0
delta
is tested against a constraint with positivedelta
, the conflict is not detected.The following patch fixes the issue
@elliottslaughter, could you please add this issue to #1032 with high priority?
The text was updated successfully, but these errors were encountered: