LeiWang1999 commented on PR #16250:
URL: https://github.com/apache/tvm/pull/16250#issuecomment-1902608872

   Hi @Lunderberg , I encountered some issues around the verify_well_formed 
analysis.  it may have some conflicts with the f16 mma tensorcore tensorization.
   
   ```bash
   Traceback (most recent call last):
     File 
"/home/t-leiwang/ladder_workspace/tvm_gpu_gemm/tensorirscript_imma/7.padding_mma_f16_f16_nt.py",
 line 235, in <module>
       sch.tensorize(loop_a, intrin_group["load_a"])
     File 
"/home/t-leiwang/mlc_workspace/mma_verify/python/tvm/tir/schedule/_type_checker.py",
 line 340, in wrap
       return func(*args, **kwargs)
     File 
"/home/t-leiwang/mlc_workspace/mma_verify/python/tvm/tir/schedule/schedule.py", 
line 2921, in tensorize
       _ffi_api.ScheduleTensorize(  # type: ignore # pylint: disable=no-member
     File 
"/home/t-leiwang/mlc_workspace/mma_verify/python/tvm/_ffi/_ctypes/packed_func.py",
 line 239, in __call__
       raise_last_ffi_error()
     File "/home/t-leiwang/mlc_workspace/mma_verify/python/tvm/_ffi/base.py", 
line 481, in raise_last_ffi_error
       raise py_err
   ValueError: Traceback (most recent call last):
     54: 
tvm::runtime::PackedFuncObj::Extractor<tvm::runtime::PackedFuncSubObj<tvm::runtime::TypedPackedFunc<void
 (tvm::tir::Schedule, tvm::runtime::ObjectRef, tvm::runtime::String, 
bool)>::AssignTypedLambda<tvm::tir::{lambda(tvm::tir::Schedule, 
tvm::runtime::ObjectRef, tvm::runtime::String, 
bool)#14}>(tvm::tir::{lambda(tvm::tir::Schedule, tvm::runtime::ObjectRef, 
tvm::runtime::String, bool)#14}, std::__cxx11::basic_string<char, 
std::char_traits<char>, std::allocator<char> >)::{lambda(tvm::runtime::TVMArgs 
const&, tvm::runtime::TVMRetValue*)#1}> >::Call(tvm::runtime::PackedFuncObj 
const*, std::__cxx11::basic_string<char, std::char_traits<char>, 
std::allocator<char> >, tvm::runtime::TVMRetValue)
     53: tvm::tir::TracedScheduleNode::Tensorize(tvm::tir::LoopRV const&, 
tvm::runtime::String const&, bool)
     52: tvm::tir::ConcreteScheduleNode::Tensorize(tvm::tir::LoopRV const&, 
tvm::runtime::String const&, bool)
     51: tvm::tir::ScheduleStateNode::DebugVerify() const
     50: tvm::tir::VerifyCachedFlags(tvm::tir::ScheduleState const&)
     49: tvm::tir::ScheduleState::ScheduleState(tvm::IRModule, int, bool)
     48: tvm::tir::VerifyWellFormed(tvm::tir::PrimFunc const&, bool)
     47: tvm::tir::TIRVisitorWithPath::Visit(tvm::tir::PrimFunc const&, 
tvm::ObjectPath)
     46: tvm::tir::TIRVisitorWithPath::Visit(tvm::tir::Stmt const&, 
tvm::ObjectPath)
     45: tvm::tir::StmtFunctor<void (tvm::tir::Stmt const&, 
tvm::ObjectPath)>::InitVTable()::{lambda(tvm::runtime::ObjectRef const&, 
tvm::tir::StmtFunctor<void (tvm::tir::Stmt const&, tvm::ObjectPath)>*, 
tvm::ObjectPath)#18}::_FUN(tvm::runtime::ObjectRef const&, 
tvm::tir::StmtFunctor<void (tvm::tir::Stmt const&, tvm::ObjectPath)>*, 
tvm::ObjectPath)
     44: tvm::tir::TIRVisitorWithPath::VisitStmt_(tvm::tir::BlockRealizeNode 
const*, tvm::ObjectPath)
     43: tvm::tir::TIRVisitorWithPath::Visit(tvm::tir::Stmt const&, 
tvm::ObjectPath)
     42: tvm::tir::StmtFunctor<void (tvm::tir::Stmt const&, 
tvm::ObjectPath)>::InitVTable()::{lambda(tvm::runtime::ObjectRef const&, 
tvm::tir::StmtFunctor<void (tvm::tir::Stmt const&, tvm::ObjectPath)>*, 
tvm::ObjectPath)#17}::_FUN(tvm::runtime::ObjectRef const&, 
tvm::tir::StmtFunctor<void (tvm::tir::Stmt const&, tvm::ObjectPath)>*, 
tvm::ObjectPath)
     41: tvm::tir::TIRVisitorWithPath::VisitStmt_(tvm::tir::BlockNode const*, 
tvm::ObjectPath)
     40: tvm::tir::TIRVisitorWithPath::Visit(tvm::tir::Stmt const&, 
tvm::ObjectPath)
     39: tvm::tir::StmtFunctor<void (tvm::tir::Stmt const&, 
tvm::ObjectPath)>::InitVTable()::{lambda(tvm::runtime::ObjectRef const&, 
tvm::tir::StmtFunctor<void (tvm::tir::Stmt const&, tvm::ObjectPath)>*, 
tvm::ObjectPath)#4}::_FUN(tvm::runtime::ObjectRef const&, 
tvm::tir::StmtFunctor<void (tvm::tir::Stmt const&, tvm::ObjectPath)>*, 
tvm::ObjectPath)
     38: tvm::tir::TIRVisitorWithPath::VisitStmt_(tvm::tir::ForNode const*, 
tvm::ObjectPath)
     37: tvm::tir::TIRVisitorWithPath::Visit(tvm::tir::Stmt const&, 
tvm::ObjectPath)
     36: tvm::tir::StmtFunctor<void (tvm::tir::Stmt const&, 
tvm::ObjectPath)>::InitVTable()::{lambda(tvm::runtime::ObjectRef const&, 
tvm::tir::StmtFunctor<void (tvm::tir::Stmt const&, tvm::ObjectPath)>*, 
tvm::ObjectPath)#4}::_FUN(tvm::runtime::ObjectRef const&, 
tvm::tir::StmtFunctor<void (tvm::tir::Stmt const&, tvm::ObjectPath)>*, 
tvm::ObjectPath)
     35: tvm::tir::TIRVisitorWithPath::VisitStmt_(tvm::tir::ForNode const*, 
tvm::ObjectPath)
     34: tvm::tir::TIRVisitorWithPath::Visit(tvm::tir::Stmt const&, 
tvm::ObjectPath)
     33: tvm::tir::StmtFunctor<void (tvm::tir::Stmt const&, 
tvm::ObjectPath)>::InitVTable()::{lambda(tvm::runtime::ObjectRef const&, 
tvm::tir::StmtFunctor<void (tvm::tir::Stmt const&, tvm::ObjectPath)>*, 
tvm::ObjectPath)#4}::_FUN(tvm::runtime::ObjectRef const&, 
tvm::tir::StmtFunctor<void (tvm::tir::Stmt const&, tvm::ObjectPath)>*, 
tvm::ObjectPath)
     32: tvm::tir::TIRVisitorWithPath::VisitStmt_(tvm::tir::ForNode const*, 
tvm::ObjectPath)
     31: tvm::tir::TIRVisitorWithPath::Visit(tvm::tir::Stmt const&, 
tvm::ObjectPath)
     30: tvm::tir::StmtFunctor<void (tvm::tir::Stmt const&, 
tvm::ObjectPath)>::InitVTable()::{lambda(tvm::runtime::ObjectRef const&, 
tvm::tir::StmtFunctor<void (tvm::tir::Stmt const&, tvm::ObjectPath)>*, 
tvm::ObjectPath)#4}::_FUN(tvm::runtime::ObjectRef const&, 
tvm::tir::StmtFunctor<void (tvm::tir::Stmt const&, tvm::ObjectPath)>*, 
tvm::ObjectPath)
     29: tvm::tir::TIRVisitorWithPath::VisitStmt_(tvm::tir::ForNode const*, 
tvm::ObjectPath)
     28: tvm::tir::TIRVisitorWithPath::Visit(tvm::tir::Stmt const&, 
tvm::ObjectPath)
     27: tvm::tir::StmtFunctor<void (tvm::tir::Stmt const&, 
tvm::ObjectPath)>::InitVTable()::{lambda(tvm::runtime::ObjectRef const&, 
tvm::tir::StmtFunctor<void (tvm::tir::Stmt const&, tvm::ObjectPath)>*, 
tvm::ObjectPath)#13}::_FUN(tvm::runtime::ObjectRef const&, 
tvm::tir::StmtFunctor<void (tvm::tir::Stmt const&, tvm::ObjectPath)>*, 
tvm::ObjectPath)
     26: tvm::tir::TIRVisitorWithPath::VisitStmt_(tvm::tir::SeqStmtNode const*, 
tvm::ObjectPath)
     25: tvm::tir::StmtFunctor<void (tvm::tir::Stmt const&, 
tvm::ObjectPath)>::InitVTable()::{lambda(tvm::runtime::ObjectRef const&, 
tvm::tir::StmtFunctor<void (tvm::tir::Stmt const&, tvm::ObjectPath)>*, 
tvm::ObjectPath)#4}::_FUN(tvm::runtime::ObjectRef const&, 
tvm::tir::StmtFunctor<void (tvm::tir::Stmt const&, tvm::ObjectPath)>*, 
tvm::ObjectPath)
     24: tvm::tir::TIRVisitorWithPath::VisitStmt_(tvm::tir::ForNode const*, 
tvm::ObjectPath)
     23: tvm::tir::TIRVisitorWithPath::Visit(tvm::tir::Stmt const&, 
tvm::ObjectPath)
     22: tvm::tir::StmtFunctor<void (tvm::tir::Stmt const&, 
tvm::ObjectPath)>::InitVTable()::{lambda(tvm::runtime::ObjectRef const&, 
tvm::tir::StmtFunctor<void (tvm::tir::Stmt const&, tvm::ObjectPath)>*, 
tvm::ObjectPath)#13}::_FUN(tvm::runtime::ObjectRef const&, 
tvm::tir::StmtFunctor<void (tvm::tir::Stmt const&, tvm::ObjectPath)>*, 
tvm::ObjectPath)
     21: tvm::tir::TIRVisitorWithPath::VisitStmt_(tvm::tir::SeqStmtNode const*, 
tvm::ObjectPath)
     20: tvm::tir::StmtFunctor<void (tvm::tir::Stmt const&, 
tvm::ObjectPath)>::InitVTable()::{lambda(tvm::runtime::ObjectRef const&, 
tvm::tir::StmtFunctor<void (tvm::tir::Stmt const&, tvm::ObjectPath)>*, 
tvm::ObjectPath)#4}::_FUN(tvm::runtime::ObjectRef const&, 
tvm::tir::StmtFunctor<void (tvm::tir::Stmt const&, tvm::ObjectPath)>*, 
tvm::ObjectPath)
     19: tvm::tir::TIRVisitorWithPath::VisitStmt_(tvm::tir::ForNode const*, 
tvm::ObjectPath)
     18: tvm::tir::TIRVisitorWithPath::Visit(tvm::tir::Stmt const&, 
tvm::ObjectPath)
     17: tvm::tir::StmtFunctor<void (tvm::tir::Stmt const&, 
tvm::ObjectPath)>::InitVTable()::{lambda(tvm::runtime::ObjectRef const&, 
tvm::tir::StmtFunctor<void (tvm::tir::Stmt const&, tvm::ObjectPath)>*, 
tvm::ObjectPath)#4}::_FUN(tvm::runtime::ObjectRef const&, 
tvm::tir::StmtFunctor<void (tvm::tir::Stmt const&, tvm::ObjectPath)>*, 
tvm::ObjectPath)
     16: tvm::tir::TIRVisitorWithPath::VisitStmt_(tvm::tir::ForNode const*, 
tvm::ObjectPath)
     15: tvm::tir::TIRVisitorWithPath::Visit(tvm::tir::Stmt const&, 
tvm::ObjectPath)
     14: tvm::tir::StmtFunctor<void (tvm::tir::Stmt const&, 
tvm::ObjectPath)>::InitVTable()::{lambda(tvm::runtime::ObjectRef const&, 
tvm::tir::StmtFunctor<void (tvm::tir::Stmt const&, tvm::ObjectPath)>*, 
tvm::ObjectPath)#4}::_FUN(tvm::runtime::ObjectRef const&, 
tvm::tir::StmtFunctor<void (tvm::tir::Stmt const&, tvm::ObjectPath)>*, 
tvm::ObjectPath)
     13: tvm::tir::TIRVisitorWithPath::VisitStmt_(tvm::tir::ForNode const*, 
tvm::ObjectPath)
     12: tvm::tir::TIRVisitorWithPath::Visit(tvm::tir::Stmt const&, 
tvm::ObjectPath)
     11: tvm::tir::StmtFunctor<void (tvm::tir::Stmt const&, 
tvm::ObjectPath)>::InitVTable()::{lambda(tvm::runtime::ObjectRef const&, 
tvm::tir::StmtFunctor<void (tvm::tir::Stmt const&, tvm::ObjectPath)>*, 
tvm::ObjectPath)#13}::_FUN(tvm::runtime::ObjectRef const&, 
tvm::tir::StmtFunctor<void (tvm::tir::Stmt const&, tvm::ObjectPath)>*, 
tvm::ObjectPath)
     10: tvm::tir::TIRVisitorWithPath::VisitStmt_(tvm::tir::SeqStmtNode const*, 
tvm::ObjectPath)
     9: tvm::tir::StmtFunctor<void (tvm::tir::Stmt const&, 
tvm::ObjectPath)>::InitVTable()::{lambda(tvm::runtime::ObjectRef const&, 
tvm::tir::StmtFunctor<void (tvm::tir::Stmt const&, tvm::ObjectPath)>*, 
tvm::ObjectPath)#18}::_FUN(tvm::runtime::ObjectRef const&, 
tvm::tir::StmtFunctor<void (tvm::tir::Stmt const&, tvm::ObjectPath)>*, 
tvm::ObjectPath)
     8: tvm::tir::TIRVisitorWithPath::VisitStmt_(tvm::tir::BlockRealizeNode 
const*, tvm::ObjectPath)
     7: tvm::tir::TIRVisitorWithPath::Visit(tvm::tir::Stmt const&, 
tvm::ObjectPath)
     6: tvm::tir::StmtFunctor<void (tvm::tir::Stmt const&, 
tvm::ObjectPath)>::InitVTable()::{lambda(tvm::runtime::ObjectRef const&, 
tvm::tir::StmtFunctor<void (tvm::tir::Stmt const&, tvm::ObjectPath)>*, 
tvm::ObjectPath)#17}::_FUN(tvm::runtime::ObjectRef const&, 
tvm::tir::StmtFunctor<void (tvm::tir::Stmt const&, tvm::ObjectPath)>*, 
tvm::ObjectPath)
     5: tvm::tir::TIRVisitorWithPath::VisitStmt_(tvm::tir::BlockNode const*, 
tvm::ObjectPath)
     4: tvm::tir::TIRVisitorWithPath::EnterDef(tvm::tir::Buffer const&, 
tvm::ObjectPath)
     3: tvm::tir::TIRVisitorWithPath::Visit(tvm::PrimExpr const&, 
tvm::ObjectPath)
     2: tvm::tir::ExprFunctor<void (tvm::PrimExpr const&, 
tvm::ObjectPath)>::InitVTable()::{lambda(tvm::runtime::ObjectRef const&, 
tvm::tir::ExprFunctor<void (tvm::PrimExpr const&, tvm::ObjectPath)>*, 
tvm::ObjectPath)#1}::_FUN(tvm::runtime::ObjectRef const&, 
tvm::tir::ExprFunctor<void (tvm::PrimExpr const&, tvm::ObjectPath)>*, 
tvm::ObjectPath)
     1: tvm::tir::UndefinedVarVerifier::VisitExpr_(tvm::tir::VarNode const*, 
tvm::ObjectPath)
     0: tvm::tir::(anonymous 
namespace)::Verifier<tvm::tir::UndefinedVarVerifier>::VerifyStream::~VerifyStream()
     File 
"/home/t-leiwang/mlc_workspace/mma_verify/src/tir/analysis/verify_well_formed.cc",
 line 100
   ValueError: Invalid use of undefined variable elem_offset at 
<root>.body.block.body.body.body.body.body.seq[1].body.seq[2].body.body.body.seq[0].block.match_buffers[0].buffer.elem_offset.
   ```
   code to reproduce: 
https://gist.github.com/LeiWang1999/1b008e1d6f780291b45037fc9756bf8c
   


-- 
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: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to