[all-commits] [llvm/llvm-project] 24c4f9: [mlir][linalg] Decompose winograd operators

Hsiangkai Wang via All-commits all-commits at lists.llvm.org
Thu Jun 20 05:52:00 PDT 2024


  Branch: refs/heads/users/hsiangkai/winograd-decompose
  Home:   https://github.com/llvm/llvm-project
  Commit: 24c4f957ae673c2955fc0674f91e488813d59350
      https://github.com/llvm/llvm-project/commit/24c4f957ae673c2955fc0674f91e488813d59350
  Author: Hsiangkai Wang <hsiangkai.wang at arm.com>
  Date:   2024-06-20 (Thu, 20 Jun 2024)

  Changed paths:
    M mlir/include/mlir/Dialect/Linalg/Transforms/Transforms.h
    M mlir/lib/Dialect/Linalg/Transforms/WinogradConv2D.cpp
    A mlir/test/Dialect/Linalg/winograd-conv2d-rewrite.mlir
    M mlir/test/lib/Dialect/Linalg/TestLinalgTransforms.cpp

  Log Message:
  -----------
  [mlir][linalg] Decompose winograd operators

Convert Linalg winograd_filter_transform, winograd_input_transform, and
winograd_output_transform into nested loops with matrix multiplication
with constant transform matrices.

Support several configurations of Winograd Conv2D, including F(2, 3),
F(4, 3) and F(2, 5). These configurations show that the implementation
can support different kernel size (3 and 5) and different output size
(2 and 4). Besides symetric kernel size 3x3 and 5x5, this patch also
supports 1x3, 3x1, 1x5, and 5x1 kernels.

The implementation is based on the paper, Fast Algorithm for
Convolutional Neural Networks. (https://arxiv.org/abs/1509.09308)



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list