[all-commits] [llvm/llvm-project] b6113d: [mlir][Linalg] Generalize linalg vectorization

Nicolas Vasilache via All-commits all-commits at lists.llvm.org
Thu Apr 29 00:48:29 PDT 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: b6113db955aa7783de9715adeffaf88ba12f2699
      https://github.com/llvm/llvm-project/commit/b6113db955aa7783de9715adeffaf88ba12f2699
  Author: Nicolas Vasilache <nicolas.vasilache at gmail.com>
  Date:   2021-04-29 (Thu, 29 Apr 2021)

  Changed paths:
    M mlir/include/mlir/Analysis/SliceAnalysis.h
    M mlir/include/mlir/Dialect/Vector/VectorOps.td
    M mlir/lib/Dialect/Linalg/Transforms/Vectorization.cpp
    M mlir/lib/Dialect/Vector/VectorOps.cpp
    M mlir/lib/Dialect/Vector/VectorTransforms.cpp
    M mlir/test/Dialect/Linalg/transform-patterns-matmul-to-vector.mlir
    M mlir/test/Dialect/Linalg/vectorization.mlir

  Log Message:
  -----------
  [mlir][Linalg] Generalize linalg vectorization

This revision adds support for vectorizing more general linalg operations with projected permutation maps.

This is achieved by eagerly broadcasting the intermediate vector to the common size
of the iteration domain of the linalg op. This allows a much more natural expression of
generalized vectorization but may introduce additional computations until all the
proper canonicalizations are implemented.

This generalization modifies the vector.transfer_read/write permutation logic and
exposes the fact that the logic employed in vector.contract was too ad-hoc.

As a consequence, changes occur in the permutation / transposition logic for contraction. In turn this prompts supporting more cases in the lowering of contract
to matrix intrinsics, which is required to make the corresponding tests pass.

Differential revision: https://reviews.llvm.org/D101165




More information about the All-commits mailing list