I'm trying to run a basic tfl_classification demo from the edgeai-tidl-tools repo (checked out to commit-ID 4f870c5, tagged release 08.00.01.10) on a Jacinto development board target with acceleration (through TFL delegate) enabled.
I am at the point where I can compile models on PC using the Python examples, copy them over to the board, and run the same demo successfully with acceleration disabled, as below:
root@j7-evm:/opt/edgeai-tidl-tools# ./bin/Debug/tfl_clasification -m models/public/tflite/mobilenet_v1_1.0_224.tflite -l test_data/labels.txt -i test_data/airshow.jpg -f model-artifacts/tfl/mobilenet_v1_1.0_224/ -c 1
Loaded model models/public/tflite/mobilenet_v1_1.0_224.tflite
resolved reporter
interpreter->Invoke - Started
interpreter->Invoke - Done
invoked
average time: 166.615 ms
0.43202: 896 warplane, military plane
0.354699: 658 missile
0.198914: 745 projectile, missile
0.0127183: 404 aircraft carrier, carrier, flattop, attack aircraft carrier
... but when I enable acceleration, I get poor classification results and a whole bunch of error printouts:
root@j7-evm:/opt/edgeai-tidl-tools# ./bin/Debug/tfl_clasification -m models/public/tflite/mobilenet_v1_1.0_224.tflite -l test_data/labels.txt -i test_data/airshow.jpg -f model-artifacts/tfl/mobilenet_v1_1.0_224/ -a 1 -d 1 -c 1
Loaded model models/public/tflite/mobilenet_v1_1.0_224.tflite
resolved reporter
ModifyGraphWithDelegate - Done
Number of subgraphs:1 , 31 nodes delegated out of 31 nodes
Calling appInit() in TIDL-RT!
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 !!!
25925.715089 s: GTC Frequency = 200 MHz
APP: Init ... Done !!!
25925.715444 s: VX_ZONE_INIT:Enabled
25925.715541 s: VX_ZONE_ERROR:Enabled
25925.715686 s: VX_ZONE_WARNING:Enabled
25925.716381 s: VX_ZONE_INIT:[tivxInitLocal:111] Initialization Done !!!
25925.716720 s: VX_ZONE_INIT:[tivxHostInitLocal:86] Initialization Done for HOST !!!
25925.731497 s: VX_ZONE_ERROR:[ownContextSendCmd:815] Command ack message returned failure cmd_status: -1
25925.731524 s: VX_ZONE_ERROR:[ownContextSendCmd:851] tivxEventWait() failed.
25925.731537 s: VX_ZONE_ERROR:[ownNodeKernelInit:538] Target kernel, TIVX_CMD_NODE_CREATE failed for node TIDLNode
25925.731546 s: VX_ZONE_ERROR:[ownNodeKernelInit:539] Please be sure the target callbacks have been registered for this core
25925.731554 s: VX_ZONE_ERROR:[ownNodeKernelInit:540] If the target callbacks have been registered, please ensure no errors are occurring within the create callback of this kernel
25925.731564 s: VX_ZONE_ERROR:[ownGraphNodeKernelInit:583] kernel init for node 0, kernel com.ti.tidl ... failed !!!
25925.731718 s: VX_ZONE_ERROR:[vxVerifyGraph:2044] Node kernel init failed
25925.731727 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
interpreter->Invoke - Started
25925.747306 s: VX_ZONE_ERROR:[ownContextSendCmd:815] Command ack message returned failure cmd_status: -1
25925.747331 s: VX_ZONE_ERROR:[ownContextSendCmd:851] tivxEventWait() failed.
25925.747343 s: VX_ZONE_ERROR:[ownNodeKernelInit:538] Target kernel, TIVX_CMD_NODE_CREATE failed for node TIDLNode
25925.747351 s: VX_ZONE_ERROR:[ownNodeKernelInit:539] Please be sure the target callbacks have been registered for this core
25925.747360 s: VX_ZONE_ERROR:[ownNodeKernelInit:540] If the target callbacks have been registered, please ensure no errors are occurring within the create callback of this kernel
25925.747370 s: VX_ZONE_ERROR:[ownGraphNodeKernelInit:583] kernel init for node 0, kernel com.ti.tidl ... failed !!!
25925.747381 s: VX_ZONE_ERROR:[vxVerifyGraph:2044] Node kernel init failed
25925.747389 s: VX_ZONE_ERROR:[vxVerifyGraph:2098] Graph verify failed
25925.747505 s: VX_ZONE_ERROR:[ownGraphScheduleGraphWrapper:820] graph is not in a state required to be scheduled
25925.747515 s: VX_ZONE_ERROR:[vxProcessGraph:755] schedule graph failed
25925.747528 s: VX_ZONE_ERROR:[vxProcessGraph:760] wait graph failed
interpreter->Invoke - Done
invoked
average time: 9.424 ms
-nan: 944 cucumber, cuke
-nan: 941 spaghetti squash
-nan: 903 whistle
-nan: 893 wall clock
-nan: 886 velvet
Calling appDeInit() in TIDL-RT!
25925.748854 s: VX_ZONE_INIT:[tivxHostDeInitLocal:100] De-Initialization Done for HOST !!!
25925.753212 s: VX_ZONE_INIT:[tivxDeInitLocal:155] De-Initialization Done !!!
APP: Deinit ... !!!
REMOTE_SERVICE: Deinit ... !!!
REMOTE_SERVICE: Deinit ... Done !!!
IPC: Deinit ... !!!
IPC: DeInit ... Done !!!
MEM: Deinit ... !!!
MEM: Alloc's: 9 alloc's of 5894221 bytes
MEM: Free's : 9 free's of 5894221 bytes
MEM: Open's : 0 allocs of 0 bytes
MEM: Deinit ... Done !!!
APP: Deinit ... Done !!!
Have I messed up my setup somehow? Can anyone advise how I might debug this issue further?