diff options
author | Hsiangkai Wang <hsiangkai.wang@arm.com> | 2024-07-10 07:30:45 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-07-10 07:30:45 +0100 |
commit | 7d246e84a412449f00c0489705336d120983bb5c (patch) | |
tree | 19ef6cb590228c5abff772497f280d240053709a /llvm/lib/ExecutionEngine/ExecutionEngine.cpp | |
parent | 015526bf3fc6843ad28f9e0809598453228c4bc2 (diff) | |
download | llvm-7d246e84a412449f00c0489705336d120983bb5c.zip llvm-7d246e84a412449f00c0489705336d120983bb5c.tar.gz llvm-7d246e84a412449f00c0489705336d120983bb5c.tar.bz2 |
[mlir][linalg] Implement Conv2D using Winograd Conv2D algorithm (#96181)
Define high level winograd operators and convert conv_2d_nhwc_fhwc into
winograd operators. According to Winograd Conv2D algorithm, we need
three transform operators for input, filter, and output transformation.
The formula of Winograd Conv2D algorithm is
Y = A^T x [(G x g x G^T) @ (B^T x d x B)] x A
filter transform: G x g x G^T
input transform: B^T x d x B
output transform: A^T x y x A
The implementation is based on the paper, Fast Algorithm for
Convolutional Neural Networks. (https://arxiv.org/abs/1509.09308)
Reviewers: stellaraccident, ftynse, Max191, GeorgeARM, cxy-1993, nicolasvasilache, MaheshRavishankar, dcaballe, rengolin
Reviewed By: ftynse, Max191, stellaraccident
Pull Request: https://github.com/llvm/llvm-project/pull/96181
Diffstat (limited to 'llvm/lib/ExecutionEngine/ExecutionEngine.cpp')
0 files changed, 0 insertions, 0 deletions