[all-commits] [llvm/llvm-project] 48e24b: Revert "[mlir][linalg] Decompose winograd operators"

Hsiangkai Wang via All-commits all-commits at lists.llvm.org
Thu Jun 27 01:37:27 PDT 2024


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

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

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

This reverts commit 24c4f957ae673c2955fc0674f91e488813d59350.


  Commit: afcddc2030bea39dc983a56d6351b14de935ada1
      https://github.com/llvm/llvm-project/commit/afcddc2030bea39dc983a56d6351b14de935ada1
  Author: Hsiangkai Wang <hsiangkai.wang at arm.com>
  Date:   2024-06-26 (Wed, 26 Jun 2024)

  Changed paths:
    M mlir/include/mlir/Dialect/Linalg/TransformOps/LinalgTransformOps.td
    M mlir/include/mlir/Dialect/Linalg/Transforms/Transforms.h
    M mlir/lib/Dialect/Linalg/TransformOps/LinalgTransformOps.cpp
    M mlir/lib/Dialect/Linalg/Transforms/WinogradConv2D.cpp
    R mlir/test/Dialect/Linalg/transform-winograd-conv2d.mlir

  Log Message:
  -----------
  Revert "[mlir][linalg] Add transform operator for Winograd Conv2D algorithm"

This reverts commit 374b0d5b83ce080bea690199380e270a36ad1c52.


  Commit: 67a5701bf19199c466e1ddd212ed6407e1ebecb0
      https://github.com/llvm/llvm-project/commit/67a5701bf19199c466e1ddd212ed6407e1ebecb0
  Author: Hsiangkai Wang <hsiangkai.wang at arm.com>
  Date:   2024-06-26 (Wed, 26 Jun 2024)

  Changed paths:
    M mlir/include/mlir/Dialect/Linalg/IR/LinalgOps.td
    M mlir/include/mlir/Dialect/Linalg/Transforms/Transforms.h
    M mlir/lib/Dialect/Linalg/IR/LinalgOps.cpp
    M mlir/lib/Dialect/Linalg/Transforms/CMakeLists.txt
    R mlir/lib/Dialect/Linalg/Transforms/WinogradConv2D.cpp
    R mlir/test/Dialect/Linalg/winograd-conv2d.mlir
    M mlir/test/lib/Dialect/Linalg/TestLinalgTransforms.cpp

  Log Message:
  -----------
  Revert "[mlir][linalg] Implement Conv2D using Winograd Conv2D algorithm"

This reverts commit 4240341b4f06f1b77f63b0f619cae3804d88eb68.


  Commit: 21afe380fd73ac671f9df76a0b0780dbb328fff1
      https://github.com/llvm/llvm-project/commit/21afe380fd73ac671f9df76a0b0780dbb328fff1
  Author: Hsiangkai Wang <hsiangkai.wang at arm.com>
  Date:   2024-06-26 (Wed, 26 Jun 2024)

  Changed paths:
    M mlir/include/mlir/Dialect/Linalg/IR/LinalgOps.td
    M mlir/include/mlir/Dialect/Linalg/Transforms/Transforms.h
    M mlir/lib/Dialect/Linalg/IR/LinalgOps.cpp
    M mlir/lib/Dialect/Linalg/Transforms/CMakeLists.txt
    A mlir/lib/Dialect/Linalg/Transforms/WinogradConv2D.cpp
    A mlir/test/Dialect/Linalg/winograd-conv2d.mlir
    M mlir/test/lib/Dialect/Linalg/TestLinalgTransforms.cpp

  Log Message:
  -----------
  [mlir][linalg] Implement Conv2D using Winograd Conv2D algorithm

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)


  Commit: 41c86eabf4d2022952e7957d775f82652bcc2f5d
      https://github.com/llvm/llvm-project/commit/41c86eabf4d2022952e7957d775f82652bcc2f5d
  Author: Hsiangkai Wang <hsiangkai.wang at arm.com>
  Date:   2024-06-26 (Wed, 26 Jun 2024)

  Changed paths:
    M mlir/include/mlir/Dialect/Linalg/TransformOps/LinalgTransformOps.td
    M mlir/include/mlir/Dialect/Linalg/Transforms/Transforms.h
    M mlir/lib/Dialect/Linalg/TransformOps/LinalgTransformOps.cpp
    M mlir/lib/Dialect/Linalg/Transforms/WinogradConv2D.cpp
    A mlir/test/Dialect/Linalg/transform-winograd-conv2d.mlir

  Log Message:
  -----------
  [mlir][linalg] Add transform operator for Winograd Conv2D algorithm

Add a transform operator structured.winograd_conv2d to convert
linalg.conv_2d_nhwc_fhwc to Linalg winograd operators.


  Commit: 6c4f432caf655e4c2e9cd27755231473165d3797
      https://github.com/llvm/llvm-project/commit/6c4f432caf655e4c2e9cd27755231473165d3797
  Author: Hsiangkai Wang <hsiangkai.wang at arm.com>
  Date:   2024-06-26 (Wed, 26 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)


  Commit: cdf7647b5327ded458673e33ee087f80114dd35d
      https://github.com/llvm/llvm-project/commit/cdf7647b5327ded458673e33ee087f80114dd35d
  Author: Hsiangkai Wang <hsiangkai.wang at arm.com>
  Date:   2024-06-27 (Thu, 27 Jun 2024)

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

  Log Message:
  -----------
  Address ftynse's comments


Compare: https://github.com/llvm/llvm-project/compare/24c4f957ae67...cdf7647b5327

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