Skip to content

Instantly share code, notes, and snippets.

@archana-ramalingam
Last active May 10, 2024 16:57
Show Gist options
  • Save archana-ramalingam/0d6dda914b36d305e4e8a31651cd1b81 to your computer and use it in GitHub Desktop.
Save archana-ramalingam/0d6dda914b36d305e4e8a31651cd1b81 to your computer and use it in GitHub Desktop.
SHARK-TestSuite/e2eshark - reducelogsumexp op torch-mlir failure
Args: /home/aramalin/Documents/Nod/torch-mlir/build/bin/torch-mlir-opt --mlir-print-debuginfo --debug --mlir-print-ir-after-all --convert-torch-onnx-to-torch --convert-torch-to-linalg /home/aramalin/Documents/Nod/SHARK-TestSuite/e2eshark/test-run/onnx/operators/ReduceLogSumExp/ReduceLogSumExp.default.torch-onnx.mlir
Load new dialect in Context builtin
ImplicitTypeIDRegistry::lookupOrInsert(mlir::ShapedType)
ImplicitTypeIDRegistry::lookupOrInsert(mlir::MemRefLayoutAttrInterface)
ImplicitTypeIDRegistry::lookupOrInsert(mlir::TypedAttr)
ImplicitTypeIDRegistry::lookupOrInsert(mlir::ElementsAttr)
ImplicitTypeIDRegistry::lookupOrInsert(mlir::DistinctAttr)
ImplicitTypeIDRegistry::lookupOrInsert(mlir::BytecodeOpInterface)
ImplicitTypeIDRegistry::lookupOrInsert(mlir::SymbolOpInterface)
ImplicitTypeIDRegistry::lookupOrInsert(mlir::OpAsmOpInterface)
ImplicitTypeIDRegistry::lookupOrInsert(mlir::RegionKindInterface)
ImplicitTypeIDRegistry::lookupOrInsert(mlir::ConditionallySpeculatable)
ImplicitTypeIDRegistry::lookupOrInsert(mlir::MemoryEffectOpInterface)
ImplicitTypeIDRegistry::lookupOrInsert(mlir::ResourceBlobManagerDialectInterface)
ImplicitTypeIDRegistry::lookupOrInsert(mlir::OpAsmDialectInterface)
ImplicitTypeIDRegistry::lookupOrInsert(mlir::BytecodeDialectInterface)
ImplicitTypeIDRegistry::lookupOrInsert(mlir::detail::AffineBinaryOpExprStorage)
ImplicitTypeIDRegistry::lookupOrInsert(mlir::detail::AffineConstantExprStorage)
ImplicitTypeIDRegistry::lookupOrInsert(mlir::detail::AffineDimExprStorage)
ImplicitTypeIDRegistry::lookupOrInsert(mlir::detail::AffineMapStorage)
ImplicitTypeIDRegistry::lookupOrInsert(mlir::detail::IntegerSetStorage)
Load new dialect in Context builtin
ImplicitTypeIDRegistry::lookupOrInsert(mlir::OpTrait::ZeroOperands<Empty>)
ImplicitTypeIDRegistry::lookupOrInsert(mlir::OpTrait::OneRegion<Empty>)
ImplicitTypeIDRegistry::lookupOrInsert(mlir::OpTrait::ZeroResults<Empty>)
ImplicitTypeIDRegistry::lookupOrInsert(mlir::OpTrait::ZeroSuccessors<Empty>)
ImplicitTypeIDRegistry::lookupOrInsert(mlir::OpTrait::NoRegionArguments<Empty>)
ImplicitTypeIDRegistry::lookupOrInsert(mlir::OpTrait::NoTerminator<Empty>)
ImplicitTypeIDRegistry::lookupOrInsert(mlir::OpTrait::SingleBlock<Empty>)
ImplicitTypeIDRegistry::lookupOrInsert(mlir::OpTrait::OpInvariants<Empty>)
ImplicitTypeIDRegistry::lookupOrInsert(mlir::BytecodeOpInterface::Trait<Empty>)
ImplicitTypeIDRegistry::lookupOrInsert(mlir::OpTrait::AffineScope<Empty>)
ImplicitTypeIDRegistry::lookupOrInsert(mlir::OpTrait::IsIsolatedFromAbove<Empty>)
ImplicitTypeIDRegistry::lookupOrInsert(mlir::OpTrait::SymbolTable<Empty>)
ImplicitTypeIDRegistry::lookupOrInsert(mlir::SymbolOpInterface::Trait<Empty>)
ImplicitTypeIDRegistry::lookupOrInsert(mlir::OpAsmOpInterface::Trait<Empty>)
ImplicitTypeIDRegistry::lookupOrInsert(mlir::RegionKindInterface::Trait<Empty>)
ImplicitTypeIDRegistry::lookupOrInsert(mlir::OpTrait::HasOnlyGraphRegion<Empty>)
Load new dialect in Context func
ImplicitTypeIDRegistry::lookupOrInsert(mlir::CallOpInterface)
ImplicitTypeIDRegistry::lookupOrInsert(mlir::SymbolUserOpInterface)
ImplicitTypeIDRegistry::lookupOrInsert(mlir::CallableOpInterface)
ImplicitTypeIDRegistry::lookupOrInsert(mlir::FunctionOpInterface)
ImplicitTypeIDRegistry::lookupOrInsert(mlir::RegionBranchTerminatorOpInterface)
ImplicitTypeIDRegistry::lookupOrInsert(mlir::DialectInlinerInterface)
ImplicitTypeIDRegistry::lookupOrInsert(mlir::ConvertToLLVMPatternInterface)
ImplicitTypeIDRegistry::lookupOrInsert(mlir::bufferization::BufferizableOpInterface)
Load new dialect in Context cf
Load new dialect in Context arith
ImplicitTypeIDRegistry::lookupOrInsert(mlir::arith::ArithFastMathInterface)
ImplicitTypeIDRegistry::lookupOrInsert(mlir::VectorUnrollOpInterface)
ImplicitTypeIDRegistry::lookupOrInsert(mlir::InferTypeOpInterface)
ImplicitTypeIDRegistry::lookupOrInsert(mlir::InferIntRangeInterface)
ImplicitTypeIDRegistry::lookupOrInsert(mlir::arith::ArithIntegerOverflowFlagsInterface)
ImplicitTypeIDRegistry::lookupOrInsert(mlir::CastOpInterface)
ImplicitTypeIDRegistry::lookupOrInsert(mlir::arith::ArithRoundingModeInterface)
ImplicitTypeIDRegistry::lookupOrInsert(mlir::bufferization::BufferDeallocationOpInterface)
ImplicitTypeIDRegistry::lookupOrInsert(mlir::ValueBoundsOpInterface)
ImplicitTypeIDRegistry::lookupOrInsert(mlir::BranchOpInterface)
ImplicitTypeIDRegistry::lookupOrInsert(mlir::OpTrait::AutomaticAllocationScope<Empty>)
ImplicitTypeIDRegistry::lookupOrInsert(mlir::CallableOpInterface::Trait<Empty>)
ImplicitTypeIDRegistry::lookupOrInsert(mlir::FunctionOpInterface::Trait<Empty>)
Load new dialect in Context torch
ImplicitTypeIDRegistry::lookupOrInsert(mlir::RegionBranchOpInterface)
ImplicitTypeIDRegistry::lookupOrInsert(mlir::OpTrait::ZeroRegions<Empty>)
ImplicitTypeIDRegistry::lookupOrInsert(mlir::OpTrait::OneResult<Empty>)
ImplicitTypeIDRegistry::lookupOrInsert(mlir::OpTrait::OneTypedResult<mlir::torch::Torch::NoneType>::Impl<Empty>)
ImplicitTypeIDRegistry::lookupOrInsert(mlir::OpTrait::ConstantLike<Empty>)
ImplicitTypeIDRegistry::lookupOrInsert(mlir::ConditionallySpeculatable::Trait<Empty>)
ImplicitTypeIDRegistry::lookupOrInsert(mlir::OpTrait::AlwaysSpeculatableImplTrait<Empty>)
ImplicitTypeIDRegistry::lookupOrInsert(mlir::MemoryEffectOpInterface::Trait<Empty>)
ImplicitTypeIDRegistry::lookupOrInsert(mlir::torch::Torch::OpTrait::AllowedInModuleInitializer<Empty>)
ImplicitTypeIDRegistry::lookupOrInsert(mlir::InferTypeOpInterface::Trait<Empty>)
ImplicitTypeIDRegistry::lookupOrInsert(mlir::OpTrait::VariadicRegions<Empty>)
ImplicitTypeIDRegistry::lookupOrInsert(mlir::OpTrait::VariadicResults<Empty>)
ImplicitTypeIDRegistry::lookupOrInsert(mlir::OpTrait::VariadicOperands<Empty>)
ImplicitTypeIDRegistry::lookupOrInsert(mlir::torch::Torch::OpTrait::AllowsTypeRefinement<Empty>)
ImplicitTypeIDRegistry::lookupOrInsert(mlir::torch::Torch::detail::OperatorOpGenericAdaptorBase::Properties)
ImplicitTypeIDRegistry::lookupOrInsert(mlir::OpTrait::HasParent<mlir::func::FuncOp>::Impl<Empty>)
ImplicitTypeIDRegistry::lookupOrInsert(mlir::OpTrait::MemRefsNormalizable<Empty>)
ImplicitTypeIDRegistry::lookupOrInsert(mlir::RegionBranchTerminatorOpInterface::Trait<Empty>)
ImplicitTypeIDRegistry::lookupOrInsert(mlir::OpTrait::ReturnLike<Empty>)
ImplicitTypeIDRegistry::lookupOrInsert(mlir::OpTrait::IsTerminator<Empty>)
ImplicitTypeIDRegistry::lookupOrInsert(mlir::detail::OpToOpPassAdaptor)
Load new dialect in Context complex
Load new dialect in Context linalg
Load new dialect in Context affine
Load new dialect in Context ub
ImplicitTypeIDRegistry::lookupOrInsert(mlir::ub::PoisonAttrInterface)
ImplicitTypeIDRegistry::lookupOrInsert(mlir::affine::AffineDmaStartOp)
ImplicitTypeIDRegistry::lookupOrInsert(mlir::affine::AffineMapAccessInterface)
ImplicitTypeIDRegistry::lookupOrInsert(mlir::affine::AffineDmaWaitOp)
ImplicitTypeIDRegistry::lookupOrInsert(mlir::LoopLikeOpInterface)
ImplicitTypeIDRegistry::lookupOrInsert(mlir::affine::AffineReadOpInterface)
ImplicitTypeIDRegistry::lookupOrInsert(mlir::affine::AffineWriteOpInterface)
Load new dialect in Context math
Load new dialect in Context memref
ImplicitTypeIDRegistry::lookupOrInsert(mlir::CopyOpInterface)
ImplicitTypeIDRegistry::lookupOrInsert(mlir::PromotableMemOpInterface)
ImplicitTypeIDRegistry::lookupOrInsert(mlir::DestructurableAccessorOpInterface)
ImplicitTypeIDRegistry::lookupOrInsert(mlir::PromotableAllocationOpInterface)
ImplicitTypeIDRegistry::lookupOrInsert(mlir::DestructurableAllocationOpInterface)
ImplicitTypeIDRegistry::lookupOrInsert(mlir::ViewLikeOpInterface)
ImplicitTypeIDRegistry::lookupOrInsert(mlir::ShapedDimOpInterface)
ImplicitTypeIDRegistry::lookupOrInsert(mlir::OffsetSizeAndStrideOpInterface)
ImplicitTypeIDRegistry::lookupOrInsert(mlir::bufferization::AllocationOpInterface)
ImplicitTypeIDRegistry::lookupOrInsert(mlir::RuntimeVerifiableOpInterface)
ImplicitTypeIDRegistry::lookupOrInsert(mlir::DestructurableTypeInterface)
Load new dialect in Context tensor
ImplicitTypeIDRegistry::lookupOrInsert(mlir::ReifyRankedShapedTypeOpInterface)
ImplicitTypeIDRegistry::lookupOrInsert(mlir::DestinationStyleOpInterface)
ImplicitTypeIDRegistry::lookupOrInsert(mlir::transform::FindPayloadReplacementOpInterface)
ImplicitTypeIDRegistry::lookupOrInsert(mlir::SubsetOpInterface)
ImplicitTypeIDRegistry::lookupOrInsert(mlir::SubsetInsertionOpInterface)
ImplicitTypeIDRegistry::lookupOrInsert(mlir::SubsetExtractionOpInterface)
ImplicitTypeIDRegistry::lookupOrInsert(mlir::TilingInterface)
ImplicitTypeIDRegistry::lookupOrInsert(mlir::linalg::AggregatedOpInterface)
ImplicitTypeIDRegistry::lookupOrInsert(mlir::linalg::LinalgOp)
ImplicitTypeIDRegistry::lookupOrInsert(mlir::linalg::ContractionOpInterface)
ImplicitTypeIDRegistry::lookupOrInsert(mlir::linalg::ConvolutionOpInterface)
ImplicitTypeIDRegistry::lookupOrInsert(mlir::linalg::FillOpInterface)
ImplicitTypeIDRegistry::lookupOrInsert(mlir::mesh::ShardingInterface)
ImplicitTypeIDRegistry::lookupOrInsert(mlir::PartialReductionOpInterface)
Load new dialect in Context torch_c
//===-------------------------------------------===//
Legalizing operation : 'func.func'(0x5579b4cd0310) {
* Fold {
ImplicitTypeIDRegistry::lookupOrInsert(mlir::DialectFoldInterface)
} -> FAILURE : unable to fold
} -> FAILURE : no matched legalization pattern
//===-------------------------------------------===//
//===-------------------------------------------===//
Legalizing operation : 'torch.constant.none'(0x5579b4ccf790) {
%0 = "torch.constant.none"() : () -> !torch.none loc("/home/aramalin/Documents/Nod/SHARK-TestSuite/e2eshark/test-run/onnx/operators/ReduceLogSumExp/ReduceLogSumExp.default.torch-onnx.mlir":3:13)
} -> SUCCESS : operation marked legal by the target
//===-------------------------------------------===//
//===-------------------------------------------===//
Legalizing operation : 'torch.operator'(0x5579b4ccf8a0) {
%1 = "torch.operator"(%arg0) <{name = "onnx.ReduceLogSumExp"}> : (!torch.vtensor<[2,3,4],f32>) -> !torch.vtensor<[1,1,1],f32> loc("/home/aramalin/Documents/Nod/SHARK-TestSuite/e2eshark/test-run/onnx/operators/ReduceLogSumExp/ReduceLogSumExp.default.torch-onnx.mlir":4:10)
} -> SUCCESS : operation marked legal by the target
//===-------------------------------------------===//
//===-------------------------------------------===//
Legalizing operation : 'func.return'(0x5579b4ccfde0) {
"func.return"(%1) : (!torch.vtensor<[1,1,1],f32>) -> () loc("/home/aramalin/Documents/Nod/SHARK-TestSuite/e2eshark/test-run/onnx/operators/ReduceLogSumExp/ReduceLogSumExp.default.torch-onnx.mlir":5:5)
* Fold {
} -> FAILURE : unable to fold
} -> FAILURE : no matched legalization pattern
//===-------------------------------------------===//
ImplicitTypeIDRegistry::lookupOrInsert(mlir::detail::PreservedAnalyses::AllAnalysesType)
// -----// IR Dump After ConvertTorchOnnxToTorch (convert-torch-onnx-to-torch) //----- //
func.func @reducelogsumexp_graph(%arg0: !torch.vtensor<[2,3,4],f32> loc("/home/aramalin/Documents/Nod/SHARK-TestSuite/e2eshark/test-run/onnx/operators/ReduceLogSumExp/ReduceLogSumExp.default.torch-onnx.mlir":2:36)) -> !torch.vtensor<[1,1,1],f32> attributes {torch.onnx_meta.ir_version = 9 : si64, torch.onnx_meta.opset_version = 17 : si64, torch.onnx_meta.producer_name = "", torch.onnx_meta.producer_version = ""} {
%none = torch.constant.none loc("/home/aramalin/Documents/Nod/SHARK-TestSuite/e2eshark/test-run/onnx/operators/ReduceLogSumExp/ReduceLogSumExp.default.torch-onnx.mlir":3:13)
%0 = torch.operator "onnx.ReduceLogSumExp"(%arg0) : (!torch.vtensor<[2,3,4],f32>) -> !torch.vtensor<[1,1,1],f32> loc("/home/aramalin/Documents/Nod/SHARK-TestSuite/e2eshark/test-run/onnx/operators/ReduceLogSumExp/ReduceLogSumExp.default.torch-onnx.mlir":4:10)
return %0 : !torch.vtensor<[1,1,1],f32> loc("/home/aramalin/Documents/Nod/SHARK-TestSuite/e2eshark/test-run/onnx/operators/ReduceLogSumExp/ReduceLogSumExp.default.torch-onnx.mlir":5:5)
} loc("/home/aramalin/Documents/Nod/SHARK-TestSuite/e2eshark/test-run/onnx/operators/ReduceLogSumExp/ReduceLogSumExp.default.torch-onnx.mlir":2:3)
//===-------------------------------------------===//
Legalizing operation : 'func.func'(0x5579b4cd0310) {
} -> SUCCESS : operation marked legal by the target
//===-------------------------------------------===//
//===-------------------------------------------===//
Legalizing operation : 'torch.constant.none'(0x5579b4ccf790) {
%0 = "torch.constant.none"() : () -> !torch.none loc("/home/aramalin/Documents/Nod/SHARK-TestSuite/e2eshark/test-run/onnx/operators/ReduceLogSumExp/ReduceLogSumExp.default.torch-onnx.mlir":3:13)
* Fold {
} -> FAILURE : unable to fold
* Pattern : 'torch.constant.none -> ()' {
Trying to match "(anonymous namespace)::ConvertAtenScalarToTensorLike"
** Failure : not a supported Scalar to Tensor like op
"(anonymous namespace)::ConvertAtenScalarToTensorLike" result 0
} -> FAILURE : pattern failed to match
* Pattern : 'torch.constant.none -> ()' {
Trying to match "(anonymous namespace)::ConvertElementwiseOp"
** Failure : not a supported elementwise op
"(anonymous namespace)::ConvertElementwiseOp" result 0
} -> FAILURE : pattern failed to match
* Pattern : 'torch.constant.none -> ()' {
Trying to match "(anonymous namespace)::ConvertReductionOp"
** Failure : not a supported reduce op
"(anonymous namespace)::ConvertReductionOp" result 0
} -> FAILURE : pattern failed to match
} -> FAILURE : no matched legalization pattern
//===-------------------------------------------===//
//===-------------------------------------------===//
Legalizing operation : 'torch.operator'(0x5579b4ccf8a0) {
%1 = "torch.operator"(%arg0) <{name = "onnx.ReduceLogSumExp"}> : (!torch.vtensor<[2,3,4],f32>) -> !torch.vtensor<[1,1,1],f32> loc("/home/aramalin/Documents/Nod/SHARK-TestSuite/e2eshark/test-run/onnx/operators/ReduceLogSumExp/ReduceLogSumExp.default.torch-onnx.mlir":4:10)
} -> SUCCESS : operation marked legal by the target
//===-------------------------------------------===//
//===-------------------------------------------===//
Legalizing operation : 'func.return'(0x5579b4ccfde0) {
"func.return"(%1) : (!torch.vtensor<[1,1,1],f32>) -> () loc("/home/aramalin/Documents/Nod/SHARK-TestSuite/e2eshark/test-run/onnx/operators/ReduceLogSumExp/ReduceLogSumExp.default.torch-onnx.mlir":5:5)
} -> SUCCESS : operation marked legal by the target
//===-------------------------------------------===//
// -----// IR Dump After ConvertTorchToLinalg (convert-torch-to-linalg) //----- //
func.func @reducelogsumexp_graph(%arg0: !torch.vtensor<[2,3,4],f32> loc("/home/aramalin/Documents/Nod/SHARK-TestSuite/e2eshark/test-run/onnx/operators/ReduceLogSumExp/ReduceLogSumExp.default.torch-onnx.mlir":2:36)) -> !torch.vtensor<[1,1,1],f32> attributes {torch.onnx_meta.ir_version = 9 : si64, torch.onnx_meta.opset_version = 17 : si64, torch.onnx_meta.producer_name = "", torch.onnx_meta.producer_version = ""} {
%none = torch.constant.none loc("/home/aramalin/Documents/Nod/SHARK-TestSuite/e2eshark/test-run/onnx/operators/ReduceLogSumExp/ReduceLogSumExp.default.torch-onnx.mlir":3:13)
%0 = torch.operator "onnx.ReduceLogSumExp"(%arg0) : (!torch.vtensor<[2,3,4],f32>) -> !torch.vtensor<[1,1,1],f32> loc("/home/aramalin/Documents/Nod/SHARK-TestSuite/e2eshark/test-run/onnx/operators/ReduceLogSumExp/ReduceLogSumExp.default.torch-onnx.mlir":4:10)
return %0 : !torch.vtensor<[1,1,1],f32> loc("/home/aramalin/Documents/Nod/SHARK-TestSuite/e2eshark/test-run/onnx/operators/ReduceLogSumExp/ReduceLogSumExp.default.torch-onnx.mlir":5:5)
} loc("/home/aramalin/Documents/Nod/SHARK-TestSuite/e2eshark/test-run/onnx/operators/ReduceLogSumExp/ReduceLogSumExp.default.torch-onnx.mlir":2:3)
ImplicitTypeIDRegistry::lookupOrInsert(mlir::detail::StorageUserTrait::IsMutable<Empty>)
#loc2 = loc("/home/aramalin/Documents/Nod/SHARK-TestSuite/e2eshark/test-run/onnx/operators/ReduceLogSumExp/ReduceLogSumExp.default.torch-onnx.mlir":2:36)
module {
func.func @reducelogsumexp_graph(%arg0: !torch.vtensor<[2,3,4],f32> loc("/home/aramalin/Documents/Nod/SHARK-TestSuite/e2eshark/test-run/onnx/operators/ReduceLogSumExp/ReduceLogSumExp.default.torch-onnx.mlir":2:36)) -> !torch.vtensor<[1,1,1],f32> attributes {torch.onnx_meta.ir_version = 9 : si64, torch.onnx_meta.opset_version = 17 : si64, torch.onnx_meta.producer_name = "", torch.onnx_meta.producer_version = ""} {
%none = torch.constant.none loc(#loc3)
%0 = torch.operator "onnx.ReduceLogSumExp"(%arg0) : (!torch.vtensor<[2,3,4],f32>) -> !torch.vtensor<[1,1,1],f32> loc(#loc4)
return %0 : !torch.vtensor<[1,1,1],f32> loc(#loc5)
} loc(#loc1)
} loc(#loc)
#loc = loc("/home/aramalin/Documents/Nod/SHARK-TestSuite/e2eshark/test-run/onnx/operators/ReduceLogSumExp/ReduceLogSumExp.default.torch-onnx.mlir":1:1)
#loc1 = loc("/home/aramalin/Documents/Nod/SHARK-TestSuite/e2eshark/test-run/onnx/operators/ReduceLogSumExp/ReduceLogSumExp.default.torch-onnx.mlir":2:3)
#loc3 = loc("/home/aramalin/Documents/Nod/SHARK-TestSuite/e2eshark/test-run/onnx/operators/ReduceLogSumExp/ReduceLogSumExp.default.torch-onnx.mlir":3:13)
#loc4 = loc("/home/aramalin/Documents/Nod/SHARK-TestSuite/e2eshark/test-run/onnx/operators/ReduceLogSumExp/ReduceLogSumExp.default.torch-onnx.mlir":4:10)
#loc5 = loc("/home/aramalin/Documents/Nod/SHARK-TestSuite/e2eshark/test-run/onnx/operators/ReduceLogSumExp/ReduceLogSumExp.default.torch-onnx.mlir":5:5)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment