[all-commits] [llvm/llvm-project] c56bd7: [mlir][linalg] Enable masked vectorisation for dep...

Andrzej Warzyński via All-commits all-commits at lists.llvm.org
Thu Mar 14 13:20:08 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: c56bd7ab7934355ed19d4d3ec299b5784bf02379
      https://github.com/llvm/llvm-project/commit/c56bd7ab7934355ed19d4d3ec299b5784bf02379
  Author: Andrzej Warzyński <andrzej.warzynski at arm.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M mlir/include/mlir/Dialect/Linalg/Transforms/Transforms.h
    M mlir/include/mlir/Dialect/Vector/Utils/VectorUtils.h
    M mlir/lib/Dialect/Linalg/Transforms/Vectorization.cpp
    M mlir/lib/Dialect/Vector/Utils/VectorUtils.cpp
    M mlir/test/Dialect/Linalg/vectorization-unsupported.mlir
    A mlir/test/Dialect/Linalg/vectorize-conv-masked-and-scalable.mlir

  Log Message:
  -----------
  [mlir][linalg] Enable masked vectorisation for depthwise convolutions (#81625)

This patch adds support for masked vectorisation of depthwise 1D WC
convolutions,`linalg.depthwise_conv_1d_nwc_wc`. This is implemented by
adding support for masking.

Two major assumptions are made:
  * only the channel dimension can be dynamic/scalable (i.e. the
    trailing dim),
  * when specifying vector sizes to use in the vectoriser, only the size
    corresponding to the channel dim is effectively used (other dims are
    inferred from the context).

In terms of scalable vectorisation, this should be sufficient to cover
all practical cases (i.e. making arbitrary dim scalable wouldn't make
much sense). As for more generic cases with dynamic shapes (e.g. W or N
dims being dynamic), more work would be needed. In particular, one would
have to consider the filter and input/output tensors separately.



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