You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tvm.apache.org by GitBox <gi...@apache.org> on 2021/11/09 07:30:29 UTC

[GitHub] [tvm] masahi opened a new issue #9476: [Bug] Auto scheduler tuning on CPU fails on `batch_matmul(x, x)`

masahi opened a new issue #9476:
URL: https://github.com/apache/tvm/issues/9476


   An interesting bug found by @shtinsa
   
   Apparently, something bad happens when the autoscheduler try to tune the workload `batch_matmul(x, x)`. It emits an error like this (A repro script https://gist.github.com/masahi/59248ec6faafae65154973c84dd6f48e):
   ```
     Check failed: (code_to_name_.find(type_code) != code_to_name_.end()) is false: Type code 192 not registered
   Stack trace:
     0: tvm::tir::Mul::Mul(tvm::PrimExpr, tvm::PrimExpr, tvm::Span)
     1: tvm::tir::ExprMutator::VisitExpr_(tvm::tir::MulNode const*)
     2: _ZZN3tvm3tir11ExprFuncto
     3: tvm::NodeFunctor<tvm::PrimExpr (tvm::runtime::ObjectRef const&, tvm::tir::ExprFunctor<tvm::PrimExpr (tvm::PrimExpr const&)>*)>::operator()(tvm::runtime::ObjectRef const&, tvm::tir::ExprFunctor<tvm::PrimExpr (tvm::PrimExpr const&)>*) const
     4: tvm::tir::ExprFunctor<tvm::PrimExpr (tvm::PrimExpr const&)>::VisitExpr(tvm::PrimExpr const&)
     5: _ZThn16_N3tvm3
     6: _ZN3tvm3tir11MutateArrayINS_8PrimExprEZNS0_11ExprMutator10VisitExpr_EPKNS0_10ReduceNodeEE4$_12EENS_7runtime5ArrayIT_NSt9enable_ifIXsr3std10is_base_ofINS8_9ObjectRefESA_EE5valueEvE4typeEEESF_T0_
     7: tvm::tir::ExprMutator::VisitExpr_(tvm::tir::ReduceNode const*)
     8: _ZZN3tvm3tir11ExprFunctorIF
     9: tvm::NodeFunctor<tvm::PrimExpr (tvm::runtime::ObjectRef const&, tvm::tir::ExprFunctor<tvm::PrimExpr (tvm::PrimExpr const&)>*)>::operator()(tvm::runtime::ObjectRef const&, tvm::tir::ExprFunctor<tvm::PrimExpr (tvm::PrimExpr const&)>*) const
     10: tvm::tir::ExprFunctor<tvm::PrimExpr (tvm::PrimExpr const&)>::VisitExpr(tvm::PrimExpr const&)
     11: tvm::te::ReplaceTensor(tvm::PrimExpr, std::unordered_map<tvm::te::Tensor, tvm::te::Tensor, std::hash<tvm::te::Tensor>, std::equal_to<tvm::te::Tensor>, std::allocator<std::pair<tvm::te::Tensor const, tvm::te::Tensor> > > const&)
     12: tvm::te::ComputeOpNode::ReplaceInputs(tvm::te::Operation const&, std::unordered_map<tvm::te::Tensor, tvm::te::Tensor, std::hash<tvm::te::Tensor>, std::equal_to<tvm::te::Tensor>, std::allocator<std::pair<tvm::te::Tensor const, tvm::te::Tensor> > > const&) const
     13: tvm::auto_scheduler::ComputeDAG::RewriteLayout(tvm::runtime::Array<tvm::auto_scheduler::Step, void>*, tvm::auto_scheduler::LayoutRewriteOption) const
     14: tvm::auto_scheduler::ComputeDAG::ApplySteps(tvm::runtime::Array<tvm::auto_scheduler::Step, void> const&, tvm::runtime::Array<tvm::te::Stage, void>*, tvm::runtime::Map<tvm::te::Stage, tvm::runtime::Array<tvm::tir::IterVar, void>, tvm::runtime::ObjectHash, tvm::runtime::ObjectEqual>*, tvm::auto_scheduler::LayoutRewriteOption) const
     15: std::_Function_handler<void (tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*), tvm::runtime::TypedPackedFunc<tvm::runtime::Array<tvm::runtime::ObjectRef, void> (tvm::auto_scheduler::ComputeDAG const&, tvm::auto_scheduler::State const&, int)>::AssignTypedLambda<tvm::auto_scheduler::$_12>(tvm::auto_scheduler::$_12, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)::{lambda(tvm::runtime::TVMArgs const&, tvm::runtime::TVMRetValue*)#1}>::_M_invoke(std::_Any_data const&, tvm::runtime::TVMArgs&&, tvm::runtime::TVMRetValue*&&)
     16: TVMFuncCall
   ``` 
   
   Interestingly, the error happens only on a CPU target. Moreover, reverting https://github.com/apache/tvm/pull/9207 also workaround this problem, but we cannot revert this PR. 


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@tvm.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [tvm] comaniac commented on issue #9476: [Bug] Auto scheduler tuning on CPU fails on `batch_matmul(x, x)`

Posted by GitBox <gi...@apache.org>.
comaniac commented on issue #9476:
URL: https://github.com/apache/tvm/issues/9476#issuecomment-963960289


   Your guess makes sense to me. Layout rewriting is always a tedious problem for auto-scheduler...I don't have a reasonable solution at the first glance.
   
   @jcf94 do you have any idea?


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@tvm.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org