[Mlir-commits] [mlir] [mlir][linalg] Implement Winograd Conv2D. (PR #94470)

Hsiangkai Wang llvmlistbot at llvm.org
Thu Jun 6 00:58:48 PDT 2024


Hsiangkai wrote:

> I'd like to get more input on this, but just for context, in IREE we handled this slightly differently. We implemented an operation for the input/filter/output transforms for winograd https://github.com/iree-org/iree/blob/9d60462ebe1bd5dcd0cc8cb8ca7a5e45523c1bd4/compiler/src/iree/compiler/Dialect/LinalgExt/IR/LinalgExtOps.td#L983 . These implement the `TilingInterface` which allow executing these operations better (ability to distribute to threads, etc.) . They eventually get decomposed into what is being implemented here. This has worked well in IREE. I would suggest we try to "upstream" what is being done in IREE.
> 
> cc @Max191 @bjacob and @harsh-nod

Thanks for your information. I didn't dig into the implementation of IREE. I assume there exists some pass to tile the input into the size supported by Winograd Conv2D. (I might be wrong. I will figure it out.) I will take a look of TilingInterface, too.  If you all agree to "upstream" IREE implementation to MLIR, I am fine to revoke this patch.

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


More information about the Mlir-commits mailing list