I have tried to load 8-bits, 16-bits and 32-bits TVM compiled models but only 32-bits failed.
The error message is below:
Batch size hardcoded to:1
DUMP CONFIGURATION:
Device type:1
Input node name:lanenet/input_tensor
sensor_selection = [0]
ldc_enable = [0]
num_frames_to_run = [1000]
is_interactive = [0]
Loading TVM model...
[07:46:20] ../src/dlr_tvm.cc:66: No metadata found
APP: Init ... !!!
MEM: Init ... !!!
MEM: Initialized DMA HEAP (fd=6) !!!
MEM: Init ... Done !!!
IPC: Init ... !!!
IPC: Init ... Done !!!
REMOTE_SERVICE: Init ... !!!
REMOTE_SERVICE: Init ... Done !!!
APP: Init ... Done !!!
4986.047958 s: VX_ZONE_INIT:Enabled
4986.048130 s: VX_ZONE_ERROR:Enabled
4986.048230 s: VX_ZONE_WARNING:Enabled
4986.049010 s: VX_ZONE_INIT:[tivxInit:71] Initialization Done !!!
4986.049418 s: VX_ZONE_INIT:[tivxHostInit:48] Initialization Done for HOST !!!
4986.064675 s: VX_ZONE_ERROR:[ownContextSendCmd:782] Command ack message returned failure cmd_status: -1
4986.064703 s: VX_ZONE_ERROR:[ownContextSendCmd:818] tivxEventWait() failed.
4986.064968 s: VX_ZONE_ERROR:[ownNodeKernelInit:526] Target kernel, TIVX_CMD_NODE_CREATE failed
4986.064974 s: VX_ZONE_ERROR:[ownNodeKernelInit:527] Please be sure the target callbacks have been registered for this core
4986.064982 s: VX_ZONE_ERROR:[ownNodeKernelInit:528] If the target callbacks have been registered, please ensure no errors ar e occurring within the create callback of this kernel
4986.064990 s: VX_ZONE_ERROR:[ownGraphNodeKernelInit:583] kernel init for node 0, kernel com.ti.tidl ... failed !!!
4986.064999 s: VX_ZONE_ERROR:[vxVerifyGraph:2044] Node kernel init failed
4986.065004 s: VX_ZONE_ERROR:[vxVerifyGraph:2098] Graph verify failed
TIDL_RT_OVX: ERROR: Verifying TIDL graph ... Failed !!!
TIDL_RT_OVX: ERROR: Verify OpenVX graph failed
[07:46:20] ../src/dlr.cc:335: [07:46:20] ../3rdparty/tvm/src/runtime/contrib/tidl/tidl_runtime.cc:390: Failed to initialize TIDL RT for subgraph 2
Stack trace:
[bt] (0) /home/root/.local/dlr/libdlr.so(+0x9e8b4) [0xffff91c0e8b4]
[bt] (1) /home/root/.local/dlr/libdlr.so(+0xaf5a0) [0xffff91c1f5a0]
[bt] (2) /home/root/.local/dlr/libdlr.so(+0xd10c4) [0xffff91c410c4]
[bt] (3) /home/root/.local/dlr/libdlr.so(+0x5ba08) [0xffff91bcba08]
[bt] (4) /home/root/.local/dlr/libdlr.so(+0xd10c4) [0xffff91c410c4]
[bt] (5) /home/root/.local/dlr/libdlr.so(+0x111be0) [0xffff91c81be0]
[bt] (6) /home/root/.local/dlr/libdlr.so(+0x115a80) [0xffff91c85a80]
[bt] (7) /home/root/.local/dlr/libdlr.so(+0x117d68) [0xffff91c87d68]
[bt] (8) /home/root/.local/dlr/libdlr.so(dlr::TVMModel::SetupTVMModule(std::vector<std::__cxx11::basic_string<char, std::char_ traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<cha r> > > >)+0x9d0) [0xffff91c069b0]
terminate called after throwing an instance of 'std::runtime_error'
what(): Could not load DLR Model
./do_dlr_lanenet.sh: line 9: 1275 Aborted (core dumped) ./tidl_dlr_lanenet.out -m $artifacts_path -d cpu -i $IN PUT_NODE -b $BATCH_SIZE -l $LABELS -v --cfg $config_path
I found that there are some differences between the output in 16-bits and 32-bit TVM compiled model.
16-bits model/
├── deploy_graph.json
├── deploy_lib.so
├── deploy_params.params
└── tempDir
├── calib_raw_data0.bin
├── calib_raw_data1.bin
├── calib_raw_data2.bin
├── relay.gv
├── relay.gv.svg
├── relay.nfo
├── subgraph0_net
│ ├── bufinfolog.csv
│ ├── bufinfolog.txt
│ └── perfSimInfo.bin
├── subgraph0_net.bin
├── subgraph0_net.bin.layer_info.txt
├── subgraph0_net.bin_netLog.txt
├── subgraph0_net.bin_paramDebug.csv
├── subgraph0_net.bin.svg
├── subgraph0_params_1.bin
├── subgraph1_net
│ ├── bufinfolog.csv
│ ├── bufinfolog.txt
│ └── perfSimInfo.bin
├── subgraph1_net.bin
├── subgraph1_net.bin.layer_info.txt
├── subgraph1_net.bin_netLog.txt
├── subgraph1_net.bin_paramDebug.csv
├── subgraph1_net.bin.svg
├── subgraph1_params_1.bin
├── subgraph2_net
│ ├── bufinfolog.csv
│ ├── bufinfolog.txt
│ └── perfSimInfo.bin
├── subgraph2_net.bin
├── subgraph2_net.bin.layer_info.txt
├── subgraph2_net.bin_netLog.txt
├── subgraph2_net.bin_paramDebug.csv
├── subgraph2_net.bin.svg
├── subgraph2_params_1.bin
├── tidl_import_subgraph0.txt.perf_sim_config.txt
├── tidl_import_subgraph0.txt.qunat_stats_config.txt
├── tidl_import_subgraph0.txt_stats_tool_out.bin
├── tidl_import_subgraph1.txt.perf_sim_config.txt
├── tidl_import_subgraph1.txt.qunat_stats_config.txt
├── tidl_import_subgraph1.txt_stats_tool_out.bin
├── tidl_import_subgraph2.txt.perf_sim_config.txt
├── tidl_import_subgraph2.txt.qunat_stats_config.txt
└── tidl_import_subgraph2.txt_stats_tool_out.bin
32-bits model/
├── deploy_graph.json
├── deploy_lib.so
├── deploy_params.params
└── tempDir
├── calib_raw_data0.bin
├── calib_raw_data1.bin
├── calib_raw_data2.bin
├── relay.gv
├── relay.gv.svg
├── relay.nfo
├── subgraph0_net.bin
├── subgraph0_net.bin.layer_info.txt
├── subgraph0_net.bin_netLog.txt
├── subgraph0_net.bin.svg
├── subgraph0_params_1.bin
├── subgraph1_net.bin
├── subgraph1_net.bin.layer_info.txt
├── subgraph1_net.bin_netLog.txt
├── subgraph1_net.bin.svg
├── subgraph1_params_1.bin
├── subgraph2_net.bin
├── subgraph2_net.bin.layer_info.txt
├── subgraph2_net.bin_netLog.txt
├── subgraph2_net.bin.svg
└── subgraph2_params_1.bin
It looks there are some bug in TVM compilation in 32-bits.
How could I fix it?
Thank you so much