[Mlir-commits] [mlir] [mlir] [tensor] Crash in getPackOpResultTypeShape for tensor.pack/unpack ops. (PR #90641)
Sayan Saha
llvmlistbot at llvm.org
Fri May 3 05:00:20 PDT 2024
sahas3 wrote:
Thanks, the repro is in the first comment in this MR. Copying it here again for clarity:
> Windows build of `mlir` with Visual Studio (19.36.32538 for x64) using with the following command:
>
> `cmake.exe -GNinja -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_PROJECTS=mlir -DLLVM_ENABLE_EH=ON -DLLVM_ENABLE_RTTI=1 -DLLVM_TARGETS_TO_BUILD=host ../llvm`
>
> is leading to a crash when calling canonicalization on `tensor.pack`/`tensor.unpack` ops `mlir-opt --canonicalize input.mlir` where the `input.mlir` is as follows (this is taken from one of the filecheck tests for `tensor.pack`):
>
> ```
> func.func @pack_unpack(%arg0: tensor<128x256xf32>) -> tensor<128x256xf32> {
> %pack_dest = tensor.empty() : tensor<8x16x8x32xf32>
> %unpack_dest = tensor.empty() : tensor<128x256xf32>
> %tp = tensor.pack %arg0 outer_dims_perm = [1, 0] inner_dims_pos = [0, 1] inner_tiles = [8, 32] into %pack_dest : tensor<128x256xf32> -> tensor<8x16x8x32xf32>
> %tup = tensor.unpack %tp outer_dims_perm = [1, 0] inner_dims_pos = [0, 1] inner_tiles = [8, 32] into %unpack_dest : tensor<8x16x8x32xf32> -> tensor<128x256xf32>
> return %tup : tensor<128x256xf32>
> }
> ```
>
> The crash is seemingly coming from invalid memory access during iterating over `innerDimsPos` within `getPackOpResultTypeShape`.
>
> This crash is also causing the following tests to fail:
>
> ```
> MLIR :: Dialect/Linalg/canonicalize.mlir
> MLIR :: Dialect/Linalg/data-layout-propagation.mlir
> MLIR :: Dialect/Linalg/generalize-tensor-pack-tile.mlir
> MLIR :: Dialect/Linalg/generalize-tensor-pack.mlir
> MLIR :: Dialect/Linalg/generalize-tensor-unpack-tile.mlir
> MLIR :: Dialect/Linalg/generalize-tensor-unpack.mlir
> MLIR :: Dialect/Linalg/transform-lower-pack.mlir
> MLIR :: Dialect/Linalg/transform-op-fuse.mlir
> MLIR :: Dialect/Linalg/transform-op-pack.mlir
> MLIR :: Dialect/Linalg/transform-pack-greedily.mlir
> MLIR :: Dialect/Tensor/canonicalize.mlir
> MLIR :: Dialect/Tensor/fold-into-pack-and-unpack.mlir
> MLIR :: Dialect/Tensor/invalid.mlir
> MLIR :: Dialect/Tensor/ops.mlir
> MLIR :: Dialect/Tensor/simplify-pack-unpack.mlir
> MLIR :: Dialect/Tensor/tiling.mlir
> ```
Note the repo needs to be build on Windows with the specific settings as mentioned above to repro the crash.
https://github.com/llvm/llvm-project/pull/90641
More information about the Mlir-commits
mailing list