-
Notifications
You must be signed in to change notification settings - Fork 74
[Helion]: Remove boundaryChecks on load operation using a block ptr/te… #5363
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
base: main
Are you sure you want to change the base?
Conversation
…nsor descriptor Signed-off-by: Ettore Tiotto <[email protected]>
third_party/intel/lib/Dialect/Triton/Transforms/RemoveBoundaryChecks.cpp
Outdated
Show resolved
Hide resolved
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 add a lit test
third_party/intel/lib/Dialect/Triton/Transforms/RemoveBoundaryChecks.cpp
Show resolved
Hide resolved
|
Why we want to remove the boundary check while the hardware support the boundary check natively? |
It is to compliments feature #5272, it is not always safe to collapse dimensions when there is boundary check. |
Signed-off-by: Ettore Tiotto <[email protected]>
Added |
Correct. The idea of this pass is to remove boundary checks that are provably not needed (the load is always inbound in the associated boundaryCheck dimension). The transformation in #5272 (which runs later in the pass pipeline) will then be able to collapse the outermost dimension of the block ptr is the boundary check is not present. |
Signed-off-by: Ettore Tiotto <[email protected]>
Signed-off-by: Ettore Tiotto <[email protected]>
|
@whitneywhtsang I have addressed review comments. How does it look now? |
We have implemented feature #5272 to collapse 3-dim loads on block ptrs into 2-dim loads when the tensor loaded has outermost dimension equal to 1. This feature compliments feature #5272. The goal here is to remove unnecessary boundaryCheck indexes on load operations if they are not necessary.