-
Notifications
You must be signed in to change notification settings - Fork 13.6k
[mlir][linalg][nfc] Update "pack-dynamic-inner-tile.mlir" #117533
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
Merged
banach-space
merged 1 commit into
llvm:main
from
banach-space:andrzej/tensor_pack_e2e_vec
Nov 26, 2024
Merged
Changes from all commits
Commits
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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.
Is it because the pack op is decomposed with rank-reduced slices + outer_dims_perm map is empty/identity? Otherwise, I'd expect a transpose op that transposes the inner dimension of the first dimension into inner tiles.
E.g., it should be
tensor<?x?x16x1>
after expanding the padded tensor, so I'd expect a transpose to bring it totensor<?x16x?x1>
.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.
In this example, note that no dimensions are transposed:
inner_dims_pos
is an identity.outer_dims_perm
(so it's also an identity).Referring to the original
tensor.pack
:tensor<7x16xi32>
and tile:7
using%tile_size
(which is%c8
).16
using1
.?x1
as the trailing/inner dimensions in the output tensor.?x16
as the outer dimensions in the output tensor:?
corresponds to the tiling along7
.16
comes from the calculationoriginal_dim
/tile_size
= 16 / 1 = 16.Does this make sense? Let me know if anything needs clarification - I want to ensure I'm explaining this correctly 😅.
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.
Yes, I understood this part. There are few ways to decompose pack ops. We can either drop or not drop unit dims during the decomposition. I think I got the answer in the above transform op. We firstly tile outer dims with tile_size=1, and the outer dimensions all have size=1. Then we decompose the ops. In the decomposition, we use patterns that drop outer unit dims, so there are no transpose ops. So I can connect all the pieces now, thanks!