-
Notifications
You must be signed in to change notification settings - Fork 69
WAR fix of a bug in compute map based loop ID retrieval #5330
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
Conversation
|
!test |
|
Review updated until commit f16107e Description
Changes walkthrough 📝
PR Reviewer Guide 🔍Here are some key observations to aid the review process:
|
|
!test --diff |
| auto disjoint_set = ca_map.disjointSetOf(id, IdMappingMode::LOOP); | ||
| auto concrete = ca_map.getConcreteMappedID(id, IdMappingMode::LOOP); | ||
|
|
||
| // The CA map's concrete ID may have an incompatible extent. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please link the issue number.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
added
|
The fix looks good. I agree just a war would be sufficient. Started the diff check to see if there's any unexpected side effect. |
The codediff is ptx diff. |
|
!test |
naoyam
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM. Thanks for the fix.
WAR fix of a bug in compute map based loop ID retrieval
Problem
See issue-#5326
The NVFuser kernel generator was creating loops with incorrect extents, causing index computation failures:
The root cause:
FOR blockIdx.x in iblockIdx.x202{1}:was generated when it should have beenFOR blockIdx.x in iblockIdx.x202{8}:Root Cause
In
getConcreteLoopID(), when using the ComputeAtMap path:IterDomains with different extents (1 and 8) are mapped into the same LOOP groupComputeAtMap::computeConcreteId()picks a representative based on graph topologyThe WAR Fix
The IdModel path correctly generates loop IDs, while the ComputeAtMap path is scheduled for deprecation. A temporary WAR fix is introduced here to unblock execution.
What was changed:
Added extent validation logic in the CA map path (non-IdModel):