[all-commits] [llvm/llvm-project] 5270df: [mlir][vector] Add scalable vectors to tests for v...
Andrzej Warzyński via All-commits
all-commits at lists.llvm.org
Fri Oct 27 01:38:50 PDT 2023
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 5270df3d177ae8849e5f1a2cec28b193ab209ef2
https://github.com/llvm/llvm-project/commit/5270df3d177ae8849e5f1a2cec28b193ab209ef2
Author: Andrzej Warzyński <andrzej.warzynski at arm.com>
Date: 2023-10-27 (Fri, 27 Oct 2023)
Changed paths:
M mlir/lib/Dialect/Vector/Transforms/LowerVectorContract.cpp
M mlir/test/Dialect/Vector/vector-contract-to-outerproduct-transforms.mlir
Log Message:
-----------
[mlir][vector] Add scalable vectors to tests for vector.contract (#70039)
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.
More information about the All-commits
mailing list