[Mlir-commits] [mlir] [mlir][SME] Update E2E test to show potential optimisation (NFC) (PR #107585)
llvmlistbot at llvm.org
llvmlistbot at llvm.org
Fri Sep 6 07:14:03 PDT 2024
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-mlir-sme
Author: Hugo Trachino (nujaa)
<details>
<summary>Changes</summary>
Introduces loop hoisting to ARM SME E2E tests to allow the hoisting of the tile load offering very important speedup.
Discussed here : https://discourse.llvm.org/t/mlir-for-arm-sme-reducing-tile-data-transfers/80065/2
---
Full diff: https://github.com/llvm/llvm-project/pull/107585.diff
2 Files Affected:
- (modified) mlir/test/Integration/Dialect/Linalg/CPU/ArmSME/matmul-transpose-a.mlir (+8)
- (modified) mlir/test/Integration/Dialect/Linalg/CPU/ArmSME/matmul.mlir (+8)
``````````diff
diff --git a/mlir/test/Integration/Dialect/Linalg/CPU/ArmSME/matmul-transpose-a.mlir b/mlir/test/Integration/Dialect/Linalg/CPU/ArmSME/matmul-transpose-a.mlir
index a57348a543c3cf..886211b65efa2d 100644
--- a/mlir/test/Integration/Dialect/Linalg/CPU/ArmSME/matmul-transpose-a.mlir
+++ b/mlir/test/Integration/Dialect/Linalg/CPU/ArmSME/matmul-transpose-a.mlir
@@ -82,8 +82,16 @@ module attributes {transform.with_named_sequence} {
transform.apply_patterns to %func {
transform.apply_patterns.vector.lower_contraction lowering_strategy = "outerproduct"
transform.apply_patterns.vector.lower_masks
+ transform.apply_patterns.canonicalization
} : !transform.any_op
+ // Step 5: Hoist load of accumulator.
+ %func_h = transform.structured.hoist_redundant_vector_transfers %func
+ : (!transform.any_op) -> !transform.any_op
+ %all_loops = transform.structured.match interface{LoopLikeInterface} in %module
+ : (!transform.any_op) -> !transform.any_op
+ transform.apply_licm to %all_loops : !transform.any_op
+ transform.loop.hoist_loop_invariant_subsets %all_loops : !transform.any_op
transform.yield
}
}
diff --git a/mlir/test/Integration/Dialect/Linalg/CPU/ArmSME/matmul.mlir b/mlir/test/Integration/Dialect/Linalg/CPU/ArmSME/matmul.mlir
index 79c9fcac70604b..4b6b9a9c746499 100644
--- a/mlir/test/Integration/Dialect/Linalg/CPU/ArmSME/matmul.mlir
+++ b/mlir/test/Integration/Dialect/Linalg/CPU/ArmSME/matmul.mlir
@@ -88,8 +88,16 @@ module attributes {transform.with_named_sequence} {
transform.apply_patterns.vector.lower_contraction lowering_strategy = "outerproduct"
transform.apply_patterns.vector.lower_masks
transform.apply_patterns.vector.rank_reducing_subview_patterns
+ transform.apply_patterns.canonicalization
} : !transform.any_op
+ // Step 6: Hoist load of accumulator.
+ %func_h = transform.structured.hoist_redundant_vector_transfers %func
+ : (!transform.any_op) -> !transform.any_op
+ %all_loops = transform.structured.match interface{LoopLikeInterface} in %bufferize
+ : (!transform.any_op) -> !transform.any_op
+ transform.apply_licm to %all_loops : !transform.any_op
+ transform.loop.hoist_loop_invariant_subsets %all_loops : !transform.any_op
transform.yield
}
}
``````````
</details>
https://github.com/llvm/llvm-project/pull/107585
More information about the Mlir-commits
mailing list