TVM module deployment problem with C++


#1

Hi,

I tried to deploy compiled tvm module i facing problem not able to load module it gives below error, it fails in CHECK.
Error:
[10:53:41] cpp_deploy.cc:61: Verify dynamic loading from test_addone_dll.so
terminate called after throwing an instance of ‘dmlc::Error’
what(): [10:53:41] cpp_deploy.cc:17: Check failed: f != nullptr

Stack trace returned 6 entries:
[bt] (0) ./testdeploy() [0x40397f]
[bt] (1) ./testdeploy() [0x403c8d]
[bt] (2) ./testdeploy() [0x402965]
[bt] (3) ./testdeploy() [0x402ded]
[bt] (4) /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf0) [0x7f22a8e7f830]
[bt] (5) ./testdeploy() [0x4026c9]

I have created module using below sample.
https://docs.tvm.ai/tutorials/relay_quick_start.html#sphx-glr-tutorials-relay-quick-start-py

and I am using below sample code to load module.

Error throwing at:
void Verify(tvm::runtime::Module mod, std::string fname) {
// Get the function from the module.
tvm::runtime::PackedFunc f = mod.GetFunction(fname);
CHECK(f != nullptr);

mod value is:
(gdb) p mod
$1 = {node_ = warning: RTTI symbol not found for class ‘std::_Sp_counted_ptr_inplace<tvm::runtime::DSOModuleNode, std::allocatortvm::runtime::DSOModuleNode, (__gnu_cxx::_Lock_policy)2>’
warning: RTTI symbol not found for class ‘std::_Sp_counted_ptr_inplace<tvm::runtime::DSOModuleNode, std::allocatortvm::runtime::DSOModuleNode, (__gnu_cxx::_Lock_policy)2>’
std::shared_ptr (count 2, weak 0) 0x6c3210}
(gdb)

f value is:

(gdb) p f
$2 = {
body_ = {<std::_Maybe_unary_or_binary_function<void, tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*>> = {<std::binary_function<tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*, void>> = {}, }, std::_Function_base = {
static _M_max_size = 16, static _M_max_align = 8, _M_functor = {_M_unused = {_M_object = 0x6f6c7065642f6269,
_M_const_object = 0x6f6c7065642f6269, _M_function_pointer = 0x6f6c7065642f6269,
_M_member_pointer = &virtual table offset 8028915816469586536, this adjustment 8030813560742109049},
_M_pod_data = “ib/deploy_lib.so”}, _M_manager = 0x0}, _M_invoker = 0x0}}
(gdb)

basically CHECK Iis failing.