[Mlir-commits] [mlir] [mlir][ArmSME][test] Unroll reduction dimension in multi-tile-matmul.mlir (PR #81160)

Andrzej WarzyƄski llvmlistbot at llvm.org
Thu Feb 8 12:52:56 PST 2024


================
@@ -73,14 +73,14 @@ module attributes {transform.with_named_sequence} {
     %matmul = transform.structured.match ops{["linalg.matmul"]} in %module
       : (!transform.any_op) -> !transform.any_op
 
-    // Step 1: Tile for size [8] x [8], which corresponds to (2 x SVLs) x (2 x SVLs),
-    // where SVLs is the number of 32-bit elements in a vector of SVL bits.
-    // This uses all four 32-bit SME virtual tiles.
-    %tiled_linalg_op, %loop_i, %loop_j, %loop_k = transform.structured.tile_using_for %matmul[[8], [8], 1]
+    // Step 1: Tile for size [8] x [8] (unrolled by 4), which corresponds to
+    // (2 x SVLs) x (2 x SVLs), where SVLs is the number of 32-bit elements in a
+    // vector of SVL bits. This uses all four 32-bit SME virtual tiles.
+    %tiled_linalg_op, %loop_i, %loop_j, %loop_k = transform.structured.tile_using_for %matmul[[8], [8], 4]
----------------
banach-space wrote:

IIUC, the K dims controls the number of SSVE regs that we would use here, right? And we need 4 regs per 1 K dim? So the possible max before spilling happens would be 8, right? 

That's tangential to this PR - I'm just curious about the optimal set-up :)

https://github.com/llvm/llvm-project/pull/81160


More information about the Mlir-commits mailing list