From cec74b8d375f6db8a4a201b86fff23a0475e3039 Mon Sep 17 00:00:00 2001 From: Henry Tu Date: Wed, 13 Jul 2022 13:28:05 -0400 Subject: [PATCH] Blacklist _convolution op (#1048) * Blacklist _convolution op in LTC * Removed duplicate Torch_AtenSelectScatterOp instance from autogen .td * Removed duplicate Torch_AtenSliceScatterOp instance from autogen .td --- build_tools/autogen_ltc_backend.yaml | 3 +- e2e_testing/torchscript/xfail_sets.py | 5 ++ .../Dialect/Torch/IR/GeneratedTorchOps.td | 54 ------------------- .../jit_ir/build_tools/torch_ods_gen.py | 2 - 4 files changed, 7 insertions(+), 57 deletions(-) diff --git a/build_tools/autogen_ltc_backend.yaml b/build_tools/autogen_ltc_backend.yaml index 37115fa98..b8a8905e0 100644 --- a/build_tools/autogen_ltc_backend.yaml +++ b/build_tools/autogen_ltc_backend.yaml @@ -1,13 +1,14 @@ blacklist: # List of unsupported ops in LTC autogen because of some error +- _index_put_impl_ # Error: TODO not sure if there are other valid types to handle here - empty_like # Error: TODO add support for type BaseType(name=) - index.Tensor # Error: TODO not sure if there are other valid types to handle here - index_put # Error: TODO not sure if there are other valid types to handle here - index_put_ # Error: TODO not sure if there are other valid types to handle here -- _index_put_impl_ # Error: TODO not sure if there are other valid types to handle here - stack # Error: TODO not sure if there are other valid types to handle here # Additional ops which autogen is supported for but don't compile yet +- _convolution - detach - item - size diff --git a/e2e_testing/torchscript/xfail_sets.py b/e2e_testing/torchscript/xfail_sets.py index 5b9a7c5b7..2a0dca69d 100644 --- a/e2e_testing/torchscript/xfail_sets.py +++ b/e2e_testing/torchscript/xfail_sets.py @@ -181,6 +181,11 @@ TOSA_PASS_SET = { } LTC_XFAIL_SET = { + "_Convolution2DAllFalseModule_basic", + "_Convolution2DBenchmarkModule_basic", + "_Convolution2DCudnnModule_basic", + "_Convolution2DDeterministicModule_basic", + "_Convolution2DTF32Module_basic", "AdaptiveAvgPool2dNonUnitOutputSizeDynamicModule_basic", "AdaptiveAvgPool2dNonUnitOutputSizeStaticModule_basic", "AddIntModule_basic", diff --git a/include/torch-mlir/Dialect/Torch/IR/GeneratedTorchOps.td b/include/torch-mlir/Dialect/Torch/IR/GeneratedTorchOps.td index e259934cc..7054d486c 100644 --- a/include/torch-mlir/Dialect/Torch/IR/GeneratedTorchOps.td +++ b/include/torch-mlir/Dialect/Torch/IR/GeneratedTorchOps.td @@ -5508,32 +5508,6 @@ def Torch_AtenSelectIntOp : Torch_Op<"aten.select.int", [ }]; } -def Torch_AtenSelectScatterOp : Torch_Op<"aten.select_scatter", [ - AllowsTypeRefinement, - HasValueSemantics, - ReadOnly - ]> { - let summary = "Generated op for `aten::select_scatter : (Tensor, Tensor, int, int) -> (Tensor)`"; - let arguments = (ins - AnyTorchTensorType:$self, - AnyTorchTensorType:$src, - Torch_IntType:$dim, - Torch_IntType:$index - ); - let results = (outs - AnyTorchTensorType:$result - ); - let hasCustomAssemblyFormat = 1; - let extraClassDefinition = [{ - ParseResult AtenSelectScatterOp::parse(OpAsmParser &parser, OperationState &result) { - return parseDefaultTorchOp(parser, result, 4, 1); - } - void AtenSelectScatterOp::print(OpAsmPrinter &printer) { - printDefaultTorchOp(printer, *this, 4, 1); - } - }]; -} - def Torch_AtenSizeIntOp : Torch_Op<"aten.size.int", [ AllowsTypeRefinement, HasValueSemantics, @@ -5989,34 +5963,6 @@ def Torch_AtenSliceTensorOp : Torch_Op<"aten.slice.Tensor", [ }]; } -def Torch_AtenSliceScatterOp : Torch_Op<"aten.slice_scatter", [ - AllowsTypeRefinement, - HasValueSemantics, - ReadOnly - ]> { - let summary = "Generated op for `aten::slice_scatter : (Tensor, Tensor, int, int?, int?, int) -> (Tensor)`"; - let arguments = (ins - AnyTorchTensorType:$self, - AnyTorchTensorType:$src, - Torch_IntType:$dim, - AnyTorchOptionalIntType:$start, - AnyTorchOptionalIntType:$end, - Torch_IntType:$step - ); - let results = (outs - AnyTorchTensorType:$result - ); - let hasCustomAssemblyFormat = 1; - let extraClassDefinition = [{ - ParseResult AtenSliceScatterOp::parse(OpAsmParser &parser, OperationState &result) { - return parseDefaultTorchOp(parser, result, 6, 1); - } - void AtenSliceScatterOp::print(OpAsmPrinter &printer) { - printDefaultTorchOp(printer, *this, 6, 1); - } - }]; -} - def Torch_AtenLenTensorOp : Torch_Op<"aten.len.Tensor", [ AllowsTypeRefinement, HasValueSemantics, diff --git a/python/torch_mlir/dialects/torch/importer/jit_ir/build_tools/torch_ods_gen.py b/python/torch_mlir/dialects/torch/importer/jit_ir/build_tools/torch_ods_gen.py index 8b3b3b3ab..2f711709c 100644 --- a/python/torch_mlir/dialects/torch/importer/jit_ir/build_tools/torch_ods_gen.py +++ b/python/torch_mlir/dialects/torch/importer/jit_ir/build_tools/torch_ods_gen.py @@ -443,7 +443,6 @@ def emit_ops(emitter_td: TextEmitter, registry: Registry): emit("aten::_reshape_alias : (Tensor, int[], int[]) -> (Tensor)") emit("aten::resize_ : (Tensor, int[], int?) -> (Tensor)") emit("aten::select.int : (Tensor, int, int) -> (Tensor)") - emit("aten::select_scatter : (Tensor, Tensor, int, int) -> (Tensor)") emit("aten::size.int : (Tensor, int) -> (int)", has_folder=True) emit("aten::stack : (Tensor[], int) -> (Tensor)") emit("aten::sum : (Tensor, int?) -> (Tensor)") @@ -462,7 +461,6 @@ def emit_ops(emitter_td: TextEmitter, registry: Registry): emit("aten::where.ScalarOther : (Tensor, Tensor, Scalar) -> (Tensor)") emit("aten::where.ScalarSelf : (Tensor, Scalar, Tensor) -> (Tensor)") emit("aten::slice.Tensor : (Tensor, int, int?, int?, int) -> (Tensor)") - emit("aten::slice_scatter : (Tensor, Tensor, int, int?, int?, int) -> (Tensor)") emit("aten::len.Tensor : (Tensor) -> (int)") emit("aten::cpu : (Tensor) -> (Tensor)") emit("aten::gather : (Tensor, int, Tensor, bool) -> (Tensor)")