I tried to further debug this and got stuck. I changed the topi computein following manner
- return tvm::sum(temp(indices) / divide_factor, { dheight, dwidth });
+ auto reduced_hw = tvm::sum(temp(indices), { dheight, dwidth });
+ return topi::divide(reduced_hw, divide_factor);
+ //return tvm::sum(temp(indices) / divide_factor, { dheight, dwidth });
};
I got the following error
tvm._ffi.base.TVMError: Traceback (most recent call last):
[bt] (8) /home/ubuntu/workplace/t1/tvm/build/libtvm.so(tvm::IRFunctor<void (tvm::NodeRef const&, tvm::ir::IRVisitor*)>::operator()(tvm::NodeRef const&, tvm::ir::IRVisitor*) const+0x162) [0x7fb3d791c47e]
[bt] (7) /home/ubuntu/workplace/t1/tvm/build/libtvm.so(std::function<void (tvm::NodeRef const&, tvm::ir::IRVisitor*)>::operator()(tvm::NodeRef const&, tvm::ir::IRVisitor*) const+0x61) [0x7fb3d791ce35]
[bt] (6) /home/ubuntu/workplace/t1/tvm/build/libtvm.so(std::_Function_handler<void (tvm::NodeRef const&, tvm::ir::IRVisitor*), tvm::IRFunctor<void (tvm::NodeRef const&, tvm::ir::IRVisitor*)>& tvm::IRFunctor<void (tvm::NodeRef const&, tvm::ir::IRVisitor*)>::set_dispatch<tvm::ir::Reduce>(std::function<void (tvm::ir::Reduce const*, tvm::ir::IRVisitor*)>)::{lambda(tvm::NodeRef const&, tvm::ir::IRVisitor*)#1}>::_M_invoke(std::_Any_data const&, tvm::NodeRef const&, tvm::ir::IRVisitor*&&)+0x4f) [0x7fb3d7c90d01]
[bt] (5) /home/ubuntu/workplace/t1/tvm/build/libtvm.so(tvm::IRFunctor<void (tvm::NodeRef const&, tvm::ir::IRVisitor*)>& tvm::IRFunctor<void (tvm::NodeRef const&, tvm::ir::IRVisitor*)>::set_dispatch<tvm::ir::Reduce>(std::function<void (tvm::ir::Reduce const*, tvm::ir::IRVisitor*)>)::{lambda(tvm::NodeRef const&, tvm::ir::IRVisitor*)#1}::operator()(tvm::NodeRef const&, tvm::ir::IRVisitor*) const+0x54) [0x7fb3d7c7f376]
[bt] (4) /home/ubuntu/workplace/t1/tvm/build/libtvm.so(std::function<void (tvm::ir::Reduce const*, tvm::ir::IRVisitor*)>::operator()(tvm::ir::Reduce const*, tvm::ir::IRVisitor*) const+0x61) [0x7fb3d7c88785]
[bt] (3) /home/ubuntu/workplace/t1/tvm/build/libtvm.so(+0x204b3b1) [0x7fb3d7c753b1]
[bt] (2) /home/ubuntu/workplace/t1/tvm/build/libtvm.so(+0x2046642) [0x7fb3d7c70642]
[bt] (1) /home/ubuntu/workplace/t1/tvm/build/libtvm.so(+0x1f66570) [0x7fb3d7b90570]
[bt] (0) /home/ubuntu/workplace/t1/tvm/build/libtvm.so(dmlc::LogMessageFatal::~LogMessageFatal()+0x34) [0x7fb3d78729f6]
File "/home/ubuntu/workplace/t1/tvm/src/op/compute_op.cc", line 584
TVMError: Check failed: 0 == level_: Reductions are only allowed at the top level of compute. Please create another tensor for further composition.
Can anybody help me with this?