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.

SK-TDA4VM: ScatterOperator: 8bit compilation & inference on emulation environment succeeded, but inference on board failed

Part Number: SK-TDA4VM

Tool/software:

Hello!

I tested single ScatterElements operator with this onnx file. 

scatter.onnx.zip

Compiling as 8 bit artifacts and inference on PC emulation environment works well and I checked reasonable result with sample input as below:

indices_sample = np.array([[
    [3, 2, 1, 0, 4, 5],
    [3, 2, 1, 0, 4, 5],
]], dtype=np.int32)
data_sample = np.zeros((1, 2, 8), dtype=np.float32)
updates_sample = np.array([[
    [3, 2, 1, 0, 4, 5],
    [13, 12, 11, 10, 14, 15],
]], dtype=np.float32)

Output tensor:
 [[[[[ 0.  1.  2.  3.  4.  5.  0.  0.]
    [ 0. 11. 12. 13. 14. 15.  0.  0.]]]]]

But inference on board doesn't work at all. It stops on VX initialization step and it hangs there and doesn't terminate.

tda4vm-sk:~/tidl_python_env# python3 tools/ti/scatter.py --file scatter.onnx
/home/root/tidl_python_env/model-artifacts/scatter_8bit
libtidl_onnxrt_EP loaded 0x16288140
artifacts_folder                                = /home/root/tidl_python_env/model-artifacts/scatter_8bit
debug_level                                     = 3
target_priority                                 = 0
max_pre_empt_delay                              = 340282346638528859811704183484516925440.000000
Final number of subgraphs created are : 1, - Offloaded Nodes - 1, Total Nodes - 1
In TIDL_createStateInfer
Compute on node : TIDLExecutionProvider_TIDL_0_0
************ in TIDL_subgraphRtCreate ************
 APP: Init ... !!!
MEM: Init ... !!!
MEM: Initialized DMA HEAP (fd=5) !!!
MEM: Init ... Done !!!
IPC: Init ... !!!
IPC: Init ... Done !!!
REMOTE_SERVICE: Init ... !!!
REMOTE_SERVICE: Init ... Done !!!
488273.922438 s: GTC Frequency = 200 MHz
APP: Init ... Done !!!
488273.922537 s:  VX_ZONE_INIT:Enabled
488273.922559 s:  VX_ZONE_ERROR:Enabled
488273.922574 s:  VX_ZONE_WARNING:Enabled
488273.923730 s:  VX_ZONE_INIT:[tivxInitLocal:130] Initialization Done !!!
488273.924589 s:  VX_ZONE_INIT:[tivxHostInitLocal:101] Initialization Done for HOST !!!
 

I saw this log below with executing `/opt/vx_app_arm_remote_log.out` 

[C7x_1 ] 484370.240919 s: APP: OpenVX Target kernel init ... !!!
[C7x_1 ] 484370.241090 s: APP: OpenVX Target kernel init ... Done !!!
[C7x_1 ] 484370.241104 s: APP: Init ... Done !!!
[C7x_1 ] 484370.241113 s: APP: Run ... !!!
[C7x_1 ] 484370.241121 s: IPC: Starting echo test ...
[C7x_1 ] 484370.241270 s: APP: Run ... Done !!!
[C7x_1 ] 484370.247644 s: IPC: Echo status: mpu1_0[x] mcu2_0[x] mcu2_1[x] C66X_1[P] C66X_2[.] C7X_1[s]
[C7x_1 ] 484370.247837 s: IPC: Echo status: mpu1_0[x] mcu2_0[x] mcu2_1[x] C66X_1[P] C66X_2[P] C7X_1[s]
[C7x_1 ] 484370.263217 s: IPC: Echo status: mpu1_0[x] mcu2_0[x] mcu2_1[P] C66X_1[P] C66X_2[P] C7X_1[s]
[C7x_1 ] 484370.298073 s: IPC: Echo status: mpu1_0[x] mcu2_0[P] mcu2_1[P] C66X_1[P] C66X_2[P] C7X_1[s]
[C7x_1 ] 487704.699498 s: TIDL_ScatterElementslayer Un suported layerParams.scatterElementsParams.axis  !!!
[C7x_1 ] 487704.704158 s:     0         1.00000         0.00000         0.00000 6
[C7x_1 ] 487719.717053 s:    3       128.00000         0.00000         0.00000 1
[C7x_1 ] 487719.747507 s:    2         1.00000         0.00000        15.00000 6
[C7x_1 ] 487719.777771 s:    4         8.00000         0.00000        15.00000 1
[C7x_1 ] 487719.808022 s:    1         1.00000         0.00000       255.00000 5