Skip to content
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

Study type packing (VNNI/BFDOT/BFMMLA/etc) as a single operation #563

Open
rengolin opened this issue May 22, 2023 · 0 comments
Open

Study type packing (VNNI/BFDOT/BFMMLA/etc) as a single operation #563

rengolin opened this issue May 22, 2023 · 0 comments
Labels
enhancement New feature or request low-priority Things that go in the back burner

Comments

@rengolin
Copy link
Contributor

rengolin commented May 22, 2023

Today we're working on a type packing for VNNI with the operation tpp.vnni_pack. But this isn't the only type of packing we may want, and they're all very similar, so we could probably come up with a single op (say tpp.type_pack) with generic arguments that converts a standard packed tensor into a type packed tensor, given some shapes.

We then map the existing types (VNNI/BFDOT/BFMMLA/etc) into this op and lower them as library calls when they match a recognised shape.

We shouldn't create this op if we don't know that the type packing makes sense (ex. by #561 calls), so we shouldn't need to lower this op to loop unless requested by the pipeline (tpp-to-loops).

@KavithaTipturMadhu

References:

@rengolin rengolin added enhancement New feature or request low-priority Things that go in the back burner labels Jul 25, 2023
chelini added a commit to chelini/tpp-sandbox that referenced this issue Nov 27, 2023
Until we have a better way to express the VNNI layout (see: plaidml#563), it is
up to the callee to specify the expected rank in the VNNI layout as the
rank depends on the operations we are dealing with.
chelini added a commit to chelini/tpp-sandbox that referenced this issue Nov 27, 2023
Until we have a better way to express the VNNI layout (see: plaidml#563), it is
up to the callee to specify the expected rank in the VNNI layout as the
rank depends on the operations we are dealing with. The current check
for rank < 3 is not correct; this is still ugly, but at least more
explicit, as there are not magic assumptions on rank.
chelini added a commit to chelini/tpp-sandbox that referenced this issue Nov 27, 2023
Until we have a better way to express the VNNI layout (see: plaidml#563), it is
up to the callee to specify the expected rank in the VNNI layout as the
rank depends on the operations we are dealing with. The current check
for rank < 3 is not correct; this is still ugly, but at least more
explicit, as there are not magic assumptions on rank.
chelini added a commit to chelini/tpp-sandbox that referenced this issue Nov 27, 2023
Until we have a better way to express the VNNI layout (see: plaidml#563), it is
up to the callee to specify the expected rank in the VNNI layout as the
rank depends on the operations we are dealing with. The current check
for rank < 3 is not correct; this is still ugly, but at least more
explicit, as there are not magic assumptions on rank.
chelini added a commit to chelini/tpp-sandbox that referenced this issue Nov 27, 2023
Until we have a better way to express the VNNI layout (see: plaidml#563), it is
up to the callee to specify the expected rank in the VNNI layout as the
rank depends on the operations we are dealing with. The current check
for rank < 3 is not correct; this is still ugly, but at least more
explicit, as there are not magic assumptions on rank.
chelini added a commit that referenced this issue Nov 27, 2023
Until we have a better way to express the VNNI layout (see: #563), it is
up to the caller to specify the expected rank in the VNNI layout as the
rank depends on the operations we are dealing with. The current check
for rank < 3 is not correct; this is still ugly, but at least more
explicit, as there are not magic assumptions on rank.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request low-priority Things that go in the back burner
Projects
None yet
Development

No branches or pull requests

1 participant