[all-commits] [llvm/llvm-project] 93fd30: [mlir][Linalg] Evolve named ops to use assembly fo...

Nicolas Vasilache via All-commits all-commits at lists.llvm.org
Fri Sep 18 03:17:50 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 93fd30bac3345fea4f5beba3241f1ef4f2f5f419
      https://github.com/llvm/llvm-project/commit/93fd30bac3345fea4f5beba3241f1ef4f2f5f419
  Author: Nicolas Vasilache <ntv at google.com>
  Date:   2020-09-18 (Fri, 18 Sep 2020)

  Changed paths:
    M mlir/docs/Dialects/Linalg.md
    M mlir/docs/OpDefinitions.md
    M mlir/include/mlir/Dialect/Linalg/IR/LinalgOps.h
    M mlir/include/mlir/Dialect/Linalg/IR/LinalgStructuredOps.td
    M mlir/include/mlir/Dialect/Linalg/IR/LinalgStructuredOpsInterface.td
    M mlir/include/mlir/Dialect/Linalg/IR/LinalgTraits.h
    M mlir/include/mlir/Dialect/Shape/IR/ShapeBase.td
    M mlir/include/mlir/IR/OpBase.td
    M mlir/integration_test/Dialect/Linalg/CPU/test-conv-1d-call.mlir
    M mlir/integration_test/Dialect/Linalg/CPU/test-conv-1d-ncw-call.mlir
    M mlir/integration_test/Dialect/Linalg/CPU/test-conv-1d-nwc-call.mlir
    M mlir/integration_test/Dialect/Linalg/CPU/test-conv-2d-call.mlir
    M mlir/integration_test/Dialect/Linalg/CPU/test-conv-2d-nchw-call.mlir
    M mlir/integration_test/Dialect/Linalg/CPU/test-conv-2d-nhwc-call.mlir
    M mlir/integration_test/Dialect/Linalg/CPU/test-conv-3d-call.mlir
    M mlir/integration_test/Dialect/Linalg/CPU/test-conv-3d-ncdhw-call.mlir
    M mlir/integration_test/Dialect/Linalg/CPU/test-conv-3d-ndhwc-call.mlir
    M mlir/lib/Dialect/Linalg/IR/LinalgOps.cpp
    M mlir/lib/Dialect/Linalg/IR/LinalgTypes.cpp
    M mlir/test/Conversion/LinalgToVector/linalg-to-vector.mlir
    M mlir/test/Dialect/Linalg/affine.mlir
    M mlir/test/Dialect/Linalg/canonicalize.mlir
    M mlir/test/Dialect/Linalg/fold-affine-min-scf.mlir
    M mlir/test/Dialect/Linalg/fusion-2-level.mlir
    M mlir/test/Dialect/Linalg/fusion.mlir
    M mlir/test/Dialect/Linalg/invalid.mlir
    M mlir/test/Dialect/Linalg/loops.mlir
    M mlir/test/Dialect/Linalg/promote.mlir
    M mlir/test/Dialect/Linalg/promotion_options.mlir
    M mlir/test/Dialect/Linalg/roundtrip.mlir
    M mlir/test/Dialect/Linalg/standard.mlir
    M mlir/test/Dialect/Linalg/tile-and-distribute.mlir
    M mlir/test/Dialect/Linalg/tile.mlir
    M mlir/test/Dialect/Linalg/tile_parallel_reduce.mlir
    M mlir/test/Dialect/Linalg/transform-patterns-matmul-to-vector.mlir
    M mlir/test/Dialect/Linalg/transform-patterns.mlir
    M mlir/test/IR/slice.mlir
    M mlir/test/lib/Dialect/Test/TestDialect.cpp
    M mlir/test/lib/Dialect/Test/TestOps.td
    M mlir/test/mlir-cpu-runner/linalg_integration_test.mlir
    M mlir/test/mlir-linalg-ods-gen/test-linalg-ods-gen.tc
    M mlir/test/mlir-tblgen/op-format-spec.td
    M mlir/test/mlir-tblgen/op-format.mlir
    M mlir/tools/mlir-linalg-ods-gen/mlir-linalg-ods-gen.cpp
    M mlir/tools/mlir-tblgen/OpFormatGen.cpp

  Log Message:
  -----------
  [mlir][Linalg] Evolve named ops to use assembly form and support linalg on tensors.

This revision allows representing a reduction at the level of linalg on tensors for named ops. When a structured op has a reduction and returns tensor(s), new conventions are added and documented.

As an illustration, the syntax for a `linalg.matmul` writing into a buffer is:

```
  linalg.matmul ins(%a, %b : memref<?x?xf32>, tensor<?x?xf32>)
               outs(%c : memref<?x?xf32>)
```

, whereas the syntax for a `linalg.matmul` returning a new tensor is:

```
  %d = linalg.matmul ins(%a, %b : tensor<?x?xf32>, memref<?x?xf32>)
                    init(%c : memref<?x?xf32>)
                      -> tensor<?x?xf32>
```

Other parts of linalg will be extended accordingly to allow mixed buffer/tensor semantics in the presence of reductions.




More information about the All-commits mailing list