Open
Description
The following IR fails to apply padding with the command:
./build/bin/mlir-proto-opt -linalg-interp-transforms /tmp/aaa.mlir -debug-only=transform-interpreter
module {
func @conv_1d_nwc_wcf_main(%arg0: tensor<1x81x32xf32> {linalg.buffer_layout = affine_map<(d0, d1, d2) -> (d0, d1, d2)>, linalg.inplaceable = false}, %arg1: tensor<3x32x64xf32> {linalg.buffer_layout = affine_map<(d0, d1, d2) -> (d0, d1, d2)>, linalg.inplaceable = false}, %arg2: tensor<1x40x64xf32> {linalg.buffer_layout = affine_map<(d0, d1, d2) -> (d0, d1, d2)>, linalg.inplaceable = true}) -> tensor<1x40x64xf32> attributes {passthrough = ["noinline", ["target-cpu", "skylake-avx512"], ["prefer-vector-width", "512"]]} {
%0 = linalg.conv_1d_nwc_wcf {dilations = dense<1> : tensor<1xi64>, strides = dense<2> : tensor<1xi64>} ins(%arg0, %arg1 : tensor<1x81x32xf32>, tensor<3x32x64xf32>) outs(%arg2 : tensor<1x40x64xf32>) -> tensor<1x40x64xf32>
return %0 : tensor<1x40x64xf32>
}
linalg_transform.sequence {
%0 = match @match_linalg_conv_1d_nwc_wcf_in_conv_1d_nwc_wcf_main
%1 = tile %0 {interchange = [], peel = [], scalarize_dyn_dims = false, sizes = [1, 32, 128, 3, 32]}
%2 = match @match_linalg_conv_1d_nwc_wcf_in_conv_1d_nwc_wcf_main
%3 = tile %2 {interchange = [], peel = [0, 1, 2, 3, 4], scalarize_dyn_dims = false, sizes = [1, 8, 32, 1, 8]}
%4 = match @match_linalg_conv_1d_nwc_wcf_in_conv_1d_nwc_wcf_main
%5 = pad %4 {hoist_paddings = [3, 0, 0], pack_paddings = [1, 1, 0], transpose_paddings = []}
// vectorize {vectorize_padding = true}
// bufferize
// lower_vectors {contraction_lowering = "outerproduct", multireduction_lowering = "innerparallel", split_transfers = "linalg-copy", stages = [1], transpose_avx2_lowering = false, transpose_lowering = "eltwise", unroll_vector_transfers = true}
// lower_vectors {contraction_lowering = "outerproduct", multireduction_lowering = "innerparallel", split_transfers = "linalg-copy", stages = [1, 2], transpose_avx2_lowering = false, transpose_lowering = "eltwise", unroll_vector_transfers = true}
// lower_vectors {contraction_lowering = "outerproduct", multireduction_lowering = "innerparallel", split_transfers = "linalg-copy", stages = [1, 2, 3], transpose_avx2_lowering = false, transpose_lowering = "eltwise", unroll_vector_transfers = true}
// lower_vectors {contraction_lowering = "outerproduct", multireduction_lowering = "innerparallel", split_transfers = "linalg-copy", stages = [1, 2, 3, 4], transpose_avx2_lowering = false, transpose_lowering = "eltwise", unroll_vector_transfers = true}
// lower_vectors {contraction_lowering = "outerproduct", multireduction_lowering = "innerparallel", split_transfers = "linalg-copy", stages = [1, 2, 3, 4, 5], transpose_avx2_lowering = false, transpose_lowering = "eltwise", unroll_vector_transfers = true}
// lower_vectors {contraction_lowering = "outerproduct", multireduction_lowering = "innerparallel", split_transfers = "linalg-copy", stages = [1, 2, 3, 4, 5, 6], transpose_avx2_lowering = false, transpose_lowering = "eltwise", unroll_vector_transfers = true}
// lower_vectors {contraction_lowering = "outerproduct", multireduction_lowering = "innerparallel", split_transfers = "linalg-copy", stages = [1, 2, 3, 4, 5, 6, 7], transpose_avx2_lowering = false, transpose_lowering = "eltwise", unroll_vector_transfers = true}
// lower_to_llvm {enable_amx = false, enable_arm_neon = false, enable_arm_sve = false, enable_async = false, enable_index_optimizations = false, enable_x86vector = false, reassociate_fp_reductions = false}
}
pdl.pattern @match_linalg_conv_1d_nwc_wcf_in_conv_1d_nwc_wcf_main : benefit(1) {
%0 = operands
%1 = types
%2 = operation "linalg.conv_1d_nwc_wcf"(%0 : !pdl.range<value>) -> (%1 : !pdl.range<type>)
apply_native_constraint "nestedInFunc" [@conv_1d_nwc_wcf_main](%2 : !pdl.operation)
rewrite %2 with "linalg_transform.apply"
}
}
This surfaced when trying to fix some of the older DoubleTile and TripleTile post padding.
The command that triggered this error is: (source benchmarks/conv.sh; conv_1d_repro)
Metadata
Metadata
Assignees
Labels
No labels