Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Bug] concatenating strided slice and negative padding causes wrong buffer binding #11897

Open
ganler opened this issue Jun 25, 2022 · 0 comments
Labels
executor:graph runtime components of graph flow. src/runtime/graph_executor, python/tvm/contrib/graph_executor.py tir:op src/tir/op, and wrappers in python/tvm/tir type: bug

Comments

@ganler
Copy link
Contributor

ganler commented Jun 25, 2022

import tvm
from tvm import relay
import numpy as np

"""
fn (%i0: Tensor[(1, 20, 1, 1), float64]) {
  %0 = strided_slice(%i0, begin=[0], end=[20], strides=[1], axes=[1]);
  %1 = nn.pad(%0, 0f, pad_width=[[0, 0], [1, -1], [0, 0], [0, 0]]);
  %2 = (%1, %0);
  concatenate(%2, axis=3)
}
"""

i0_shape = (1, 20, 1, 1)

i0 = relay.var("i0", shape=i0_shape, dtype='float64')
v1 = relay.strided_slice(i0, begin=[0], end=[20], strides=[1], axes=[1])
v2 = relay.nn.pad(v1, pad_value=0., pad_width=[[0, 0], [1, -1], [0, 0], [0, 0]], pad_mode="constant")
v3 = relay.concatenate([v2, v1], axis=3)
f = relay.Function([i0], v3)

relay.create_executor('graph', device=tvm.cpu(), target='llvm').evaluate(f)

Expected behavior

Pass compilation as ORT (it is originally from part of a verified ONNX model).

Actual behavior

Compiler failure. Due to:

Core Logs [click to expand]
"""
at /home/ganler/Documents/tvm-pr-2/src/tir/transforms/storage_flatten.cc:835
  66: tvm::tir::StmtMutator::operator()(tvm::tir::Stmt)
        at /home/ganler/Documents/tvm-pr-2/include/tvm/tir/stmt_functor.h:190
  65: tvm::tir::StmtMutator::VisitStmt(tvm::tir::Stmt const&)
        at /home/ganler/Documents/tvm-pr-2/include/tvm/tir/stmt_functor.h:244
  64: tvm::tir::StmtFunctor<tvm::tir::Stmt (tvm::tir::Stmt const&)>::VisitStmt(tvm::tir::Stmt const&)
        at /home/ganler/Documents/tvm-pr-2/include/tvm/tir/stmt_functor.h:82
  63: tvm::NodeFunctor<tvm::tir::Stmt (tvm::runtime::ObjectRef const&, tvm::tir::StmtFunctor<tvm::tir::Stmt (tvm::tir::Stmt const&)>*)>::operator()(tvm::runtime::ObjectRef const&, tvm::tir::StmtFunctor<tvm::tir::Stmt (tvm::tir::Stmt const&)>*) const
        at /home/ganler/Documents/tvm-pr-2/include/tvm/node/functor.h:97
  62: tvm::tir::StmtFunctor<tvm::tir::Stmt (tvm::tir::Stmt const&)>::InitVTable()::{lambda(tvm::runtime::ObjectRef const&, tvm::tir::StmtFunctor<tvm::tir::Stmt (tvm::tir::Stmt const&)>*)#16}::__invoke(tvm::runtime::ObjectRef const&, tvm::tir::StmtFunctor<tvm::tir::Stmt (tvm::tir::Stmt const&)>*)
        at /home/ganler/Documents/tvm-pr-2/include/tvm/tir/stmt_functor.h:127
  61: tvm::tir::StmtFunctor<tvm::tir::Stmt (tvm::tir::Stmt const&)>::InitVTable()::{lambda(tvm::runtime::ObjectRef const&, tvm::tir::StmtFunctor<tvm::tir::Stmt (tvm::tir::Stmt const&)>*)#16}::operator()(tvm::runtime::ObjectRef const&, tvm::tir::StmtFunctor<tvm::tir::Stmt (tvm::tir::Stmt const&)>*) const
        at /home/ganler/Documents/tvm-pr-2/include/tvm/tir/stmt_functor.h:127
  60: tvm::tir::BufferBindUnwrapper::VisitStmt_(tvm::tir::BufferRealizeNode const*)
        at /home/ganler/Documents/tvm-pr-2/src/tir/transforms/storage_flatten.cc:1006
  59: tvm::tir::StmtMutator::VisitStmt_(tvm::tir::BufferRealizeNode const*)
        at /home/ganler/Documents/tvm-pr-2/src/tir/ir/stmt_functor.cc:380
  58: tvm::tir::StmtMutator::VisitStmt(tvm::tir::Stmt const&)
        at /home/ganler/Documents/tvm-pr-2/include/tvm/tir/stmt_functor.h:244
  57: tvm::tir::StmtFunctor<tvm::tir::Stmt (tvm::tir::Stmt const&)>::VisitStmt(tvm::tir::Stmt const&)
        at /home/ganler/Documents/tvm-pr-2/include/tvm/tir/stmt_functor.h:82
  56: tvm::NodeFunctor<tvm::tir::Stmt (tvm::runtime::ObjectRef const&, tvm::tir::StmtFunctor<tvm::tir::Stmt (tvm::tir::Stmt const&)>*)>::operator()(tvm::runtime::ObjectRef const&, tvm::tir::StmtFunctor<tvm::tir::Stmt (tvm::tir::Stmt const&)>*) const
        at /home/ganler/Documents/tvm-pr-2/include/tvm/node/functor.h:97
  55: tvm::tir::StmtFunctor<tvm::tir::Stmt (tvm::tir::Stmt const&)>::InitVTable()::{lambda(tvm::runtime::ObjectRef const&, tvm::tir::StmtFunctor<tvm::tir::Stmt (tvm::tir::Stmt const&)>*)#13}::__invoke(tvm::runtime::ObjectRef const&, tvm::tir::StmtFunctor<tvm::tir::Stmt (tvm::tir::Stmt const&)>*)
        at /home/ganler/Documents/tvm-pr-2/include/tvm/tir/stmt_functor.h:124
  54: tvm::tir::StmtFunctor<tvm::tir::Stmt (tvm::tir::Stmt const&)>::InitVTable()::{lambda(tvm::runtime::ObjectRef const&, tvm::tir::StmtFunctor<tvm::tir::Stmt (tvm::tir::Stmt const&)>*)#13}::operator()(tvm::runtime::ObjectRef const&, tvm::tir::StmtFunctor<tvm::tir::Stmt (tvm::tir::Stmt const&)>*) const
        at /home/ganler/Documents/tvm-pr-2/include/tvm/tir/stmt_functor.h:124
  53: tvm::tir::StmtMutator::VisitStmt_(tvm::tir::SeqStmtNode const*)
        at /home/ganler/Documents/tvm-pr-2/src/tir/ir/stmt_functor.cc:433
  52: tvm::tir::StmtMutator::Internal::Mutate(tvm::tir::StmtMutator*, tvm::runtime::Array<tvm::tir::Stmt, void> const&)
        at /home/ganler/Documents/tvm-pr-2/src/tir/ir/stmt_functor.cc:213
  51: tvm::runtime::Array<tvm::tir::Stmt, std::enable_if<std::is_base_of<tvm::runtime::ObjectRef, tvm::tir::Stmt>::value, void>::type> tvm::tir::StmtMutator::Internal::MutateArray<tvm::tir::Stmt, tvm::tir::StmtMutator::Internal::Mutate(tvm::tir::StmtMutator*, tvm::runtime::Array<tvm::tir::Stmt, void> const&)::{lambda(tvm::tir::Stmt const&)#1}>(tvm::tir::StmtMutator*, tvm::runtime::Array<tvm::tir::Stmt, std::enable_if<std::is_base_of<tvm::runtime::ObjectRef, tvm::tir::Stmt>::value, void>::type> const&, tvm::tir::StmtMutator::Internal::Mutate(tvm::tir::StmtMutator*, tvm::runtime::Array<tvm::tir::Stmt, void> const&)::{lambda(tvm::tir::Stmt const&)#1})
        at /home/ganler/Documents/tvm-pr-2/src/tir/ir/stmt_functor.cc:180
  50: void tvm::runtime::Array<tvm::tir::Stmt, void>::MutateByApply<tvm::tir::StmtMutator::Internal::Mutate(tvm::tir::StmtMutator*, tvm::runtime::Array<tvm::tir::Stmt, void> const&)::{lambda(tvm::tir::Stmt const&)#1}>(tvm::tir::StmtMutator::Internal::Mutate(tvm::tir::StmtMutator*, tvm::runtime::Array<tvm::tir::Stmt, void> const&)::{lambda(tvm::tir::Stmt const&)#1})
        at /home/ganler/Documents/tvm-pr-2/include/tvm/runtime/container/array.h:623
  49: tvm::tir::StmtMutator::Internal::Mutate(tvm::tir::StmtMutator*, tvm::runtime::Array<tvm::tir::Stmt, void> const&)::{lambda(tvm::tir::Stmt const&)#1}::operator()(tvm::tir::Stmt const&) const
        at /home/ganler/Documents/tvm-pr-2/src/tir/ir/stmt_functor.cc:212
  48: tvm::tir::StmtMutator::VisitStmt(tvm::tir::Stmt const&)
        at /home/ganler/Documents/tvm-pr-2/include/tvm/tir/stmt_functor.h:244
  47: tvm::tir::StmtFunctor<tvm::tir::Stmt (tvm::tir::Stmt const&)>::VisitStmt(tvm::tir::Stmt const&)
        at /home/ganler/Documents/tvm-pr-2/include/tvm/tir/stmt_functor.h:82
  46: tvm::NodeFunctor<tvm::tir::Stmt (tvm::runtime::ObjectRef const&, tvm::tir::StmtFunctor<tvm::tir::Stmt (tvm::tir::Stmt const&)>*)>::operator()(tvm::runtime::ObjectRef const&, tvm::tir::StmtFunctor<tvm::tir::Stmt (tvm::tir::Stmt const&)>*) const
        at /home/ganler/Documents/tvm-pr-2/include/tvm/node/functor.h:97
  45: tvm::tir::StmtFunctor<tvm::tir::Stmt (tvm::tir::Stmt const&)>::InitVTable()::{lambda(tvm::runtime::ObjectRef const&, tvm::tir::StmtFunctor<tvm::tir::Stmt (tvm::tir::Stmt const&)>*)#16}::__invoke(tvm::runtime::ObjectRef const&, tvm::tir::StmtFunctor<tvm::tir::Stmt (tvm::tir::Stmt const&)>*)
        at /home/ganler/Documents/tvm-pr-2/include/tvm/tir/stmt_functor.h:127
  44: tvm::tir::StmtFunctor<tvm::tir::Stmt (tvm::tir::Stmt const&)>::InitVTable()::{lambda(tvm::runtime::ObjectRef const&, tvm::tir::StmtFunctor<tvm::tir::Stmt (tvm::tir::Stmt const&)>*)#16}::operator()(tvm::runtime::ObjectRef const&, tvm::tir::StmtFunctor<tvm::tir::Stmt (tvm::tir::Stmt const&)>*) const
        at /home/ganler/Documents/tvm-pr-2/include/tvm/tir/stmt_functor.h:127
  43: tvm::tir::BufferBindUnwrapper::VisitStmt_(tvm::tir::BufferRealizeNode const*)
        at /home/ganler/Documents/tvm-pr-2/src/tir/transforms/storage_flatten.cc:1006
  42: tvm::tir::StmtMutator::VisitStmt_(tvm::tir::BufferRealizeNode const*)
        at /home/ganler/Documents/tvm-pr-2/src/tir/ir/stmt_functor.cc:380
  41: tvm::tir::StmtMutator::VisitStmt(tvm::tir::Stmt const&)
        at /home/ganler/Documents/tvm-pr-2/include/tvm/tir/stmt_functor.h:244
  40: tvm::tir::StmtFunctor<tvm::tir::Stmt (tvm::tir::Stmt const&)>::VisitStmt(tvm::tir::Stmt const&)
        at /home/ganler/Documents/tvm-pr-2/include/tvm/tir/stmt_functor.h:82
  39: tvm::NodeFunctor<tvm::tir::Stmt (tvm::runtime::ObjectRef const&, tvm::tir::StmtFunctor<tvm::tir::Stmt (tvm::tir::Stmt const&)>*)>::operator()(tvm::runtime::ObjectRef const&, tvm::tir::StmtFunctor<tvm::tir::Stmt (tvm::tir::Stmt const&)>*) const
        at /home/ganler/Documents/tvm-pr-2/include/tvm/node/functor.h:97
  38: tvm::tir::StmtFunctor<tvm::tir::Stmt (tvm::tir::Stmt const&)>::InitVTable()::{lambda(tvm::runtime::ObjectRef const&, tvm::tir::StmtFunctor<tvm::tir::Stmt (tvm::tir::Stmt const&)>*)#13}::__invoke(tvm::runtime::ObjectRef const&, tvm::tir::StmtFunctor<tvm::tir::Stmt (tvm::tir::Stmt const&)>*)
        at /home/ganler/Documents/tvm-pr-2/include/tvm/tir/stmt_functor.h:124
  37: tvm::tir::StmtFunctor<tvm::tir::Stmt (tvm::tir::Stmt const&)>::InitVTable()::{lambda(tvm::runtime::ObjectRef const&, tvm::tir::StmtFunctor<tvm::tir::Stmt (tvm::tir::Stmt const&)>*)#13}::operator()(tvm::runtime::ObjectRef const&, tvm::tir::StmtFunctor<tvm::tir::Stmt (tvm::tir::Stmt const&)>*) const
        at /home/ganler/Documents/tvm-pr-2/include/tvm/tir/stmt_functor.h:124
  36: tvm::tir::StmtMutator::VisitStmt_(tvm::tir::SeqStmtNode const*)
        at /home/ganler/Documents/tvm-pr-2/src/tir/ir/stmt_functor.cc:433
  35: tvm::tir::StmtMutator::Internal::Mutate(tvm::tir::StmtMutator*, tvm::runtime::Array<tvm::tir::Stmt, void> const&)
        at /home/ganler/Documents/tvm-pr-2/src/tir/ir/stmt_functor.cc:213
  34: tvm::runtime::Array<tvm::tir::Stmt, std::enable_if<std::is_base_of<tvm::runtime::ObjectRef, tvm::tir::Stmt>::value, void>::type> tvm::tir::StmtMutator::Internal::MutateArray<tvm::tir::Stmt, tvm::tir::StmtMutator::Internal::Mutate(tvm::tir::StmtMutator*, tvm::runtime::Array<tvm::tir::Stmt, void> const&)::{lambda(tvm::tir::Stmt const&)#1}>(tvm::tir::StmtMutator*, tvm::runtime::Array<tvm::tir::Stmt, std::enable_if<std::is_base_of<tvm::runtime::ObjectRef, tvm::tir::Stmt>::value, void>::type> const&, tvm::tir::StmtMutator::Internal::Mutate(tvm::tir::StmtMutator*, tvm::runtime::Array<tvm::tir::Stmt, void> const&)::{lambda(tvm::tir::Stmt const&)#1})
        at /home/ganler/Documents/tvm-pr-2/src/tir/ir/stmt_functor.cc:180
  33: void tvm::runtime::Array<tvm::tir::Stmt, void>::MutateByApply<tvm::tir::StmtMutator::Internal::Mutate(tvm::tir::StmtMutator*, tvm::runtime::Array<tvm::tir::Stmt, void> const&)::{lambda(tvm::tir::Stmt const&)#1}>(tvm::tir::StmtMutator::Internal::Mutate(tvm::tir::StmtMutator*, tvm::runtime::Array<tvm::tir::Stmt, void> const&)::{lambda(tvm::tir::Stmt const&)#1})
        at /home/ganler/Documents/tvm-pr-2/include/tvm/runtime/container/array.h:623
  32: tvm::tir::StmtMutator::Internal::Mutate(tvm::tir::StmtMutator*, tvm::runtime::Array<tvm::tir::Stmt, void> const&)::{lambda(tvm::tir::Stmt const&)#1}::operator()(tvm::tir::Stmt const&) const
        at /home/ganler/Documents/tvm-pr-2/src/tir/ir/stmt_functor.cc:212
  31: tvm::tir::StmtMutator::VisitStmt(tvm::tir::Stmt const&)
        at /home/ganler/Documents/tvm-pr-2/include/tvm/tir/stmt_functor.h:244
  30: tvm::tir::StmtFunctor<tvm::tir::Stmt (tvm::tir::Stmt const&)>::VisitStmt(tvm::tir::Stmt const&)
        at /home/ganler/Documents/tvm-pr-2/include/tvm/tir/stmt_functor.h:82
  29: tvm::NodeFunctor<tvm::tir::Stmt (tvm::runtime::ObjectRef const&, tvm::tir::StmtFunctor<tvm::tir::Stmt (tvm::tir::Stmt const&)>*)>::operator()(tvm::runtime::ObjectRef const&, tvm::tir::StmtFunctor<tvm::tir::Stmt (tvm::tir::Stmt const&)>*) const
        at /home/ganler/Documents/tvm-pr-2/include/tvm/node/functor.h:97
  28: tvm::tir::StmtFunctor<tvm::tir::Stmt (tvm::tir::Stmt const&)>::InitVTable()::{lambda(tvm::runtime::ObjectRef const&, tvm::tir::StmtFunctor<tvm::tir::Stmt (tvm::tir::Stmt const&)>*)#16}::__invoke(tvm::runtime::ObjectRef const&, tvm::tir::StmtFunctor<tvm::tir::Stmt (tvm::tir::Stmt const&)>*)
        at /home/ganler/Documents/tvm-pr-2/include/tvm/tir/stmt_functor.h:127
  27: tvm::tir::StmtFunctor<tvm::tir::Stmt (tvm::tir::Stmt const&)>::InitVTable()::{lambda(tvm::runtime::ObjectRef const&, tvm::tir::StmtFunctor<tvm::tir::Stmt (tvm::tir::Stmt const&)>*)#16}::operator()(tvm::runtime::ObjectRef const&, tvm::tir::StmtFunctor<tvm::tir::Stmt (tvm::tir::Stmt const&)>*) const
        at /home/ganler/Documents/tvm-pr-2/include/tvm/tir/stmt_functor.h:127
  26: tvm::tir::BufferBindUnwrapper::VisitStmt_(tvm::tir::BufferRealizeNode const*)
        at /home/ganler/Documents/tvm-pr-2/src/tir/transforms/storage_flatten.cc:1006
  25: tvm::tir::StmtMutator::VisitStmt_(tvm::tir::BufferRealizeNode const*)
        at /home/ganler/Documents/tvm-pr-2/src/tir/ir/stmt_functor.cc:380
  24: tvm::tir::StmtMutator::VisitStmt(tvm::tir::Stmt const&)
        at /home/ganler/Documents/tvm-pr-2/include/tvm/tir/stmt_functor.h:244
  23: tvm::tir::StmtFunctor<tvm::tir::Stmt (tvm::tir::Stmt const&)>::VisitStmt(tvm::tir::Stmt const&)
        at /home/ganler/Documents/tvm-pr-2/include/tvm/tir/stmt_functor.h:82
  22: tvm::NodeFunctor<tvm::tir::Stmt (tvm::runtime::ObjectRef const&, tvm::tir::StmtFunctor<tvm::tir::Stmt (tvm::tir::Stmt const&)>*)>::operator()(tvm::runtime::ObjectRef const&, tvm::tir::StmtFunctor<tvm::tir::Stmt (tvm::tir::Stmt const&)>*) const
        at /home/ganler/Documents/tvm-pr-2/include/tvm/node/functor.h:97
  21: tvm::tir::StmtFunctor<tvm::tir::Stmt (tvm::tir::Stmt const&)>::InitVTable()::{lambda(tvm::runtime::ObjectRef const&, tvm::tir::StmtFunctor<tvm::tir::Stmt (tvm::tir::Stmt const&)>*)#13}::__invoke(tvm::runtime::ObjectRef const&, tvm::tir::StmtFunctor<tvm::tir::Stmt (tvm::tir::Stmt const&)>*)
        at /home/ganler/Documents/tvm-pr-2/include/tvm/tir/stmt_functor.h:124
  20: tvm::tir::StmtFunctor<tvm::tir::Stmt (tvm::tir::Stmt const&)>::InitVTable()::{lambda(tvm::runtime::ObjectRef const&, tvm::tir::StmtFunctor<tvm::tir::Stmt (tvm::tir::Stmt const&)>*)#13}::operator()(tvm::runtime::ObjectRef const&, tvm::tir::StmtFunctor<tvm::tir::Stmt (tvm::tir::Stmt const&)>*) const
        at /home/ganler/Documents/tvm-pr-2/include/tvm/tir/stmt_functor.h:124
  19: tvm::tir::StmtMutator::VisitStmt_(tvm::tir::SeqStmtNode const*)
        at /home/ganler/Documents/tvm-pr-2/src/tir/ir/stmt_functor.cc:433
  18: tvm::tir::StmtMutator::Internal::Mutate(tvm::tir::StmtMutator*, tvm::runtime::Array<tvm::tir::Stmt, void> const&)
        at /home/ganler/Documents/tvm-pr-2/src/tir/ir/stmt_functor.cc:213
  17: tvm::runtime::Array<tvm::tir::Stmt, std::enable_if<std::is_base_of<tvm::runtime::ObjectRef, tvm::tir::Stmt>::value, void>::type> tvm::tir::StmtMutator::Internal::MutateArray<tvm::tir::Stmt, tvm::tir::StmtMutator::Internal::Mutate(tvm::tir::StmtMutator*, tvm::runtime::Array<tvm::tir::Stmt, void> const&)::{lambda(tvm::tir::Stmt const&)#1}>(tvm::tir::StmtMutator*, tvm::runtime::Array<tvm::tir::Stmt, std::enable_if<std::is_base_of<tvm::runtime::ObjectRef, tvm::tir::Stmt>::value, void>::type> const&, tvm::tir::StmtMutator::Internal::Mutate(tvm::tir::StmtMutator*, tvm::runtime::Array<tvm::tir::Stmt, void> const&)::{lambda(tvm::tir::Stmt const&)#1})
        at /home/ganler/Documents/tvm-pr-2/src/tir/ir/stmt_functor.cc:180
  16: void tvm::runtime::Array<tvm::tir::Stmt, void>::MutateByApply<tvm::tir::StmtMutator::Internal::Mutate(tvm::tir::StmtMutator*, tvm::runtime::Array<tvm::tir::Stmt, void> const&)::{lambda(tvm::tir::Stmt const&)#1}>(tvm::tir::StmtMutator::Internal::Mutate(tvm::tir::StmtMutator*, tvm::runtime::Array<tvm::tir::Stmt, void> const&)::{lambda(tvm::tir::Stmt const&)#1})
        at /home/ganler/Documents/tvm-pr-2/include/tvm/runtime/container/array.h:623
  15: tvm::tir::StmtMutator::Internal::Mutate(tvm::tir::StmtMutator*, tvm::runtime::Array<tvm::tir::Stmt, void> const&)::{lambda(tvm::tir::Stmt const&)#1}::operator()(tvm::tir::Stmt const&) const
        at /home/ganler/Documents/tvm-pr-2/src/tir/ir/stmt_functor.cc:212
  14: tvm::tir::StmtMutator::VisitStmt(tvm::tir::Stmt const&)
        at /home/ganler/Documents/tvm-pr-2/include/tvm/tir/stmt_functor.h:244
  13: tvm::tir::StmtFunctor<tvm::tir::Stmt (tvm::tir::Stmt const&)>::VisitStmt(tvm::tir::Stmt const&)
        at /home/ganler/Documents/tvm-pr-2/include/tvm/tir/stmt_functor.h:82
  12: tvm::NodeFunctor<tvm::tir::Stmt (tvm::runtime::ObjectRef const&, tvm::tir::StmtFunctor<tvm::tir::Stmt (tvm::tir::Stmt const&)>*)>::operator()(tvm::runtime::ObjectRef const&, tvm::tir::StmtFunctor<tvm::tir::Stmt (tvm::tir::Stmt const&)>*) const
        at /home/ganler/Documents/tvm-pr-2/include/tvm/node/functor.h:97
  11: tvm::tir::StmtFunctor<tvm::tir::Stmt (tvm::tir::Stmt const&)>::InitVTable()::{lambda(tvm::runtime::ObjectRef const&, tvm::tir::StmtFunctor<tvm::tir::Stmt (tvm::tir::Stmt const&)>*)#2}::__invoke(tvm::runtime::ObjectRef const&, tvm::tir::StmtFunctor<tvm::tir::Stmt (tvm::tir::Stmt const&)>*)
        at /home/ganler/Documents/tvm-pr-2/include/tvm/tir/stmt_functor.h:113
  10: tvm::tir::StmtFunctor<tvm::tir::Stmt (tvm::tir::Stmt const&)>::InitVTable()::{lambda(tvm::runtime::ObjectRef const&, tvm::tir::StmtFunctor<tvm::tir::Stmt (tvm::tir::Stmt const&)>*)#2}::operator()(tvm::runtime::ObjectRef const&, tvm::tir::StmtFunctor<tvm::tir::Stmt (tvm::tir::Stmt const&)>*) const
        at /home/ganler/Documents/tvm-pr-2/include/tvm/tir/stmt_functor.h:113
  9: tvm::tir::BufferBindUnwrapper::VisitStmt_(tvm::tir::AttrStmtNode const*)
        at /home/ganler/Documents/tvm-pr-2/src/tir/transforms/storage_flatten.cc:883
  8: tvm::tir::BufferBindUnwrapper::HandleBufferBindScope(tvm::tir::AttrStmtNode const*)
        at /home/ganler/Documents/tvm-pr-2/src/tir/transforms/storage_flatten.cc:1132
  7: tvm::tir::StmtMutator::VisitStmt(tvm::tir::Stmt const&)
        at /home/ganler/Documents/tvm-pr-2/include/tvm/tir/stmt_functor.h:240
  6: tvm::tir::StmtFunctor<tvm::tir::Stmt (tvm::tir::Stmt const&)>::VisitStmt(tvm::tir::Stmt const&)
        at /home/ganler/Documents/tvm-pr-2/include/tvm/tir/stmt_functor.h:82
  5: tvm::NodeFunctor<tvm::tir::Stmt (tvm::runtime::ObjectRef const&, tvm::tir::StmtFunctor<tvm::tir::Stmt (tvm::tir::Stmt const&)>*)>::operator()(tvm::runtime::ObjectRef const&, tvm::tir::StmtFunctor<tvm::tir::Stmt (tvm::tir::Stmt const&)>*) const
        at /home/ganler/Documents/tvm-pr-2/include/tvm/node/functor.h:97
  4: tvm::tir::StmtFunctor<tvm::tir::Stmt (tvm::tir::Stmt const&)>::InitVTable()::{lambda(tvm::runtime::ObjectRef const&, tvm::tir::StmtFunctor<tvm::tir::Stmt (tvm::tir::Stmt const&)>*)#2}::__invoke(tvm::runtime::ObjectRef const&, tvm::tir::StmtFunctor<tvm::tir::Stmt (tvm::tir::Stmt const&)>*)
        at /home/ganler/Documents/tvm-pr-2/include/tvm/tir/stmt_functor.h:113
  3: tvm::tir::StmtFunctor<tvm::tir::Stmt (tvm::tir::Stmt const&)>::InitVTable()::{lambda(tvm::runtime::ObjectRef const&, tvm::tir::StmtFunctor<tvm::tir::Stmt (tvm::tir::Stmt const&)>*)#2}::operator()(tvm::runtime::ObjectRef const&, tvm::tir::StmtFunctor<tvm::tir::Stmt (tvm::tir::Stmt const&)>*) const
        at /home/ganler/Documents/tvm-pr-2/include/tvm/tir/stmt_functor.h:113
  2: tvm::tir::BufferBindUnwrapper::VisitStmt_(tvm::tir::AttrStmtNode const*)
        at /home/ganler/Documents/tvm-pr-2/src/tir/transforms/storage_flatten.cc:883
  1: tvm::tir::BufferBindUnwrapper::HandleBufferBindScope(tvm::tir::AttrStmtNode const*)
        at /home/ganler/Documents/tvm-pr-2/src/tir/transforms/storage_flatten.cc:1121
  0: tvm::tir::ArgBinder::BindBuffer(tvm::tir::Buffer const&, tvm::tir::Buffer const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool)
        at /home/ganler/Documents/tvm-pr-2/src/tir/transforms/arg_binder.cc:103
  File "/home/ganler/Documents/tvm-pr-2/src/tir/transforms/arg_binder.cc", line 103
TVMError: 
---------------------------------------------------------------
An error occurred during the execution of TVM.
For more information, please see: https://tvm.apache.org/docs/errors.html
---------------------------------------------------------------
  Check failed: (is_zero(value->elem_offset)) is false: Trying to bind a Buffer with offset into one without offset  required elem_offset=0, provided elem_offset=1
"""

Environment

Ubuntu 20.04. TVM tag: ed638ef

@areusch areusch added the needs-triage PRs or issues that need to be investigated by maintainers to find the right assignees to address it label Oct 19, 2022
@driazati driazati added tir:op src/tir/op, and wrappers in python/tvm/tir executor:graph runtime components of graph flow. src/runtime/graph_executor, python/tvm/contrib/graph_executor.py and removed needs-triage PRs or issues that need to be investigated by maintainers to find the right assignees to address it labels Nov 16, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
executor:graph runtime components of graph flow. src/runtime/graph_executor, python/tvm/contrib/graph_executor.py tir:op src/tir/op, and wrappers in python/tvm/tir type: bug
Projects
None yet
Development

No branches or pull requests

3 participants