Skip to content

[mlir][vector] Add scalable vectors to tests for vector.contract#70039

Merged
banach-space merged 1 commit into
llvm:mainfrom
banach-space:andrzej/extend_vec_cont_to_op_tests
Oct 27, 2023
Merged

[mlir][vector] Add scalable vectors to tests for vector.contract#70039
banach-space merged 1 commit into
llvm:mainfrom
banach-space:andrzej/extend_vec_cont_to_op_tests

Conversation

@banach-space

@banach-space banach-space commented Oct 24, 2023

Copy link
Copy Markdown
Contributor

Update the remaining tests for matrix multiplication (matmul) in:

  • vector-contract-to-outerproduct-transforms.mlir

with cases for scalable vectors.

Note that in order for the "vector.contract -> vector.outerproduct"
patterns to work, only the non-reduction dimension can be scalable (*).
For Matmul operations that is set to be the N dimension (i.e. rows of
the output matrix), which matches how matrix multiplication are normally
implemented for e.g. Arm's SVE. However, making the M dimension scalable
(i.e. columns of the output matrix) should work as well.

Making both parellel dimensions scalable is left as a TODO for when
support for 2-D scalable vectors is more established (this is
work-in-progress as part of the effort to support Arm's SME in MLIR).

The change in:

  • UnrolledOuterProductGenerator

is a "bug fix" to make sure that the conversion pattern correctly
propagates scalability when creating arith.extf operations.

(*) The conversion tested in this file unrolls along the reduction
dimension, which is not supported for scalable vectors.

@banach-space banach-space changed the title andrzej/extend vec cont to op tests [mlir][vector] Add scalable vectors to tests for vector.contract Oct 24, 2023
@banach-space

Copy link
Copy Markdown
Contributor Author

NOTE: Only review the last commit. Other commits are dependencies.

@banach-space banach-space force-pushed the andrzej/extend_vec_cont_to_op_tests branch from b5f879a to 065af62 Compare October 26, 2023 12:15

@MacDue MacDue left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These LGTM, thanks!

@banach-space banach-space force-pushed the andrzej/extend_vec_cont_to_op_tests branch 2 times, most recently from 3f8efb7 to 92bd07f Compare October 27, 2023 08:28
Update the remaining tests for matrix multiplication (_matmul_) in:

  * vector-contract-to-outerproduct-transforms.mlir

with cases for scalable vectors.

Note that in order for the "vector.contract -> vector.outerproduct"
patterns to work, only the non-reduction dimension can be scalable (*).
For Matmul operations that is set to be the N dimension (i.e. rows of
the output matrix), which matches how matrix multiplication are normally
implemented for e.g. Arm's SVE. However, making the M dimension scalable
(i.e. columns of the output matrix) should work as well.

Making both parellel dimensions scalable is left as a TODO for when
support for 2-D scalable vectors is more established (this is
work-in-progress as part of the effort to support Arm's SME in MLIR).

The change in:

  * `UnrolledOuterProductGenerator`

is a "bug fix" to make sure that the conversion pattern correctly
propagates scalability when creating `arith.extf` operations.

(*) The conversion tested in this file unrolls along the reduction
dimension, which is not supported for scalable vectors.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants