This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

J784S4XEVM: TI edgeai-tidl-tools and TI TVM compile onnx model , error occurs during linking ( offload to C7x)

Genius 13655 points
Part Number: J784S4XEVM

Hello Champs,

Baed on this script (edgeai-tidl-tools-09_00_00_00/examples/osrt_python/tvm_dlr/tvm_compilation_onnx_example.py ) , customer compiles the trained model from our alogrithm  team

When he uses this  command , that is to say   all TIDL-unsupported layers run on Arm  , compiling can be done  successfully.

python3 tvm_compilation_onnx_example_dummy_vpn.py --no-offload 

but When I use this  command to complie  , that is to say  all TIDL-unsupported layers run on C7x ,  errors occurs during linking stages 

python3 tvm_compilation_onnx_example_dummy_vpn.py

Folllowing are some error log details 

/data/yangcun/ti/ti-cgt-c7000_3.1.0.LTS/bin/cl7x -o3 --abi=eabi --gcc --c11 -mv7100 -DSOC_J784S4 -I /home/jumpserver/.local/lib/python3.10/site-packages/tvm/include -I /home/jumpserver/.local/lib/python3.10/site-packages/tvm/3rdparty/dlpack/include -I /home/jumpserver/.local/lib/python3.10/site-packages/tvm/src/runtime/contrib/tidl/c7x func_registry.obj tvm_main.obj model_0.obj model_10.obj model_11.obj model_12.obj model_13.obj model_14.obj model_15.obj model_16.obj model_17.obj model_1.obj model_2.obj model_3.obj model_4.obj model_5.obj model_6.obj model_7.obj model_8.obj model_9.obj graph.json.c_embed.obj params.bin.c_embed.obj subgraph0_net.c_embed.obj subgraph0_params.c_embed.obj subgraph10_net.c_embed.obj subgraph10_params.c_embed.obj subgraph11_net.c_embed.obj subgraph11_params.c_embed.obj subgraph12_net.c_embed.obj subgraph12_params.c_embed.obj subgraph13_net.c_embed.obj subgraph13_params.c_embed.obj subgraph14_net.c_embed.obj subgraph14_params.c_embed.obj subgraph15_net.c_embed.obj subgraph15_params.c_embed.obj subgraph1_net.c_embed.obj subgraph1_params.c_embed.obj subgraph2_net.c_embed.obj subgraph2_params.c_embed.obj subgraph3_net.c_embed.obj subgraph3_params.c_embed.obj subgraph4_net.c_embed.obj subgraph4_params.c_embed.obj subgraph5_net.c_embed.obj subgraph5_params.c_embed.obj subgraph6_net.c_embed.obj subgraph6_params.c_embed.obj subgraph7_net.c_embed.obj subgraph7_params.c_embed.obj subgraph8_net.c_embed.obj subgraph8_params.c_embed.obj subgraph9_net.c_embed.obj subgraph9_params.c_embed.obj \
/home/jumpserver/.local/lib/python3.10/site-packages/tvm/src/runtime/contrib/tidl/c7x/7100_j784s4/dsp_syms.out.obj \
-z -i /home/jumpserver/.local/lib/python3.10/site-packages/tvm/src/runtime/contrib/tidl/c7x/7100_j784s4 \
-l tidl_api.lib \
-l tvm_crt.lib \
-l rts7100_le.lib \
\
-l /home/jumpserver/.local/lib/python3.10/site-packages/tvm/src/runtime/contrib/tidl/c7x/c7x_tvm.cmd \
-o c7x_deploy_tvm.out -m c7x_deploy_tvm.out.map
<Linking>
warning #10473-D: Specified -heap size argument (0) is smaller than estimated
required minimum heap size (16).
"/home/jumpserver/.local/lib/python3.10/site-packages/tvm/src/runtime/contrib/tidl/c7x/c7x_tvm.cmd", line 67: error #10099-D:
program will not fit into available memory, or the section contains a call
site that requires a trampoline that can't be generated for this section.
placement with alignment fails for section ".const" size 0x1c33d818.
Available memory ranges:
DDR size: 0x19000000 unused: 0x18fe0dc0 max hole: 0x18fe0dc0
error #10010: errors encountered during linking; "c7x_deploy_tvm.out" not
built

>> Compilation failure
make: *** [/home/jumpserver/.local/lib/python3.10/site-packages/tvm/src/runtime/contrib/tidl/c7x/Makefile.c7x_mod:54: c7x_deploy_tvm.out] Error 1
make: Leaving directory '/data/yangcun/edgeai-tidl-tools-09_00_00_00/model-artifacts/1007_v4.1_dummy_vpn_device/tempDir'

Traceback (most recent call last):
File "/data/yangcun/edgeai-tidl-tools-09_00_00_00/examples/osrt_python/tvm_dlr/tvm_compilation_onnx_example_dummy_vpn.py", line 176, in <module>
mod, status = compiler.enable(mod, params, calib_input_list)
File "/home/jumpserver/.local/lib/python3.10/site-packages/tvm/relay/backend/contrib/tidl/tidl.py", line 2310, in enable
mod_final = enable_c7x_mod(self, mod, mod_pre, params, num_imported_sgs)
File "/home/jumpserver/.local/lib/python3.10/site-packages/tvm/relay/backend/contrib/tidl/build_c7x_mod.py", line 55, in enable_c7x_mod
raise Exception("Building C7x tvm deployable module failed.")
Exception: Building C7x tvm deployable module failed.

 

Thanks
Regards
Shine