[Mlir-commits] [mlir] [mlir][linalg] Implement Conv2D using Winograd Conv2D algorithm (PR #96181)

llvmlistbot at llvm.org llvmlistbot at llvm.org
Mon Jun 24 07:30:23 PDT 2024


Max191 wrote:

> High-level design question: what are we getting from introducing these ops instead of just directly implementing the transformation and emitting more Linalg? Are the ops getting transformed?

These ops carry an implicit level of tiling, where the non-input tile dimensions (`N`, `C`, and expanded `H` and `W` for input transform) get tiled to 1. Then, the ops can be decomposed into a series of `linalg.matmul` ops. The main benefit of having these ops is that they are a canonical form of the operation that doesn't have to be split into multiple ops within a loop nest. This makes tiling neater, especially when trying to tile and fuse the winograd ops.

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


More information about the Mlir-commits mailing list