[Mlir-commits] [mlir] [mlir][linalg] Add pass to transpose A matrix	of matmul op (PR #89075)
    Andrzej WarzyĆski 
    llvmlistbot at llvm.org
       
    Thu Apr 18 02:29:56 PDT 2024
    
    
  
================
@@ -141,4 +141,13 @@ def LinalgDetensorizePass : InterfacePass<"linalg-detensorize", "FunctionOpInter
   ];
 }
 
+def LinalgMatmulToMatmulTransposeAPass
+    : Pass<"linalg-matmul-to-matmul-transpose-a"> {
+  let summary = "Converts `linalg.matmul` to `linalg.matmul_transpose_a`.";
+  let dependentDialects = ["linalg::LinalgDialect"];
+  let description = [{
+    Transposes the A matrix of a `linalg.matmul` for contiguous access.
----------------
banach-space wrote:
[nit] It's more like "Replace linalg.matmul with `linalg.transpose` + `linalg.matmul_transpose_a`" :)
Also:
>  for contiguous access
This is a fairly low-level concept that might be irrelevant in the case of "linalg on tensors". And even for "linalg on memrefs", it might not matter for some hardware. It's obviously very beneficial for CPUs :) 
https://github.com/llvm/llvm-project/pull/89075
    
    
More information about the Mlir-commits
mailing list