Hello everyone,
I am working on using the NPU delegate on my iMX8MP board by following the official instructions here:
https://docs.mesa3d.org/teflon.html
When I run the classification example on CPU, it works fine:
```
TEFLON_DEBUG=verbose ETNA_MESA_DEBUG=ml_dbgs python3 classification.py -i grace_hopper.bmp -m mobilenet_v1_1_224_quant.tflite -l labels_mobilenet_quant_v1_224.txt
INFO: Created TensorFlow Lite XNNPACK delegate for CPU.
0.878431: military uniform
0.027451: Windsor tie
...
time: 166.804ms
```
However, when I try to run it using the NPU delegate, it fails with the message:
`We need at least 1 NN core to do anything useful.` and aborts with a core dump.
The logs show the error originates here in the code when checking NN core count:
```
if (nn_core_count < 1) {
fprintf(stderr, "We need at least 1 NN core to do anything useful.\n");
abort();
}
```
Yet, my board does run etnaviv kernel driver and reports the NPU with this dmesg output:
```
[ 2.506788] etnaviv-gpu 38500000.npu: model: GC8000, revision: 8002
[ 2.513079] etnaviv-gpu 38500000.npu: etnaviv has been instantiated on a NPU, for which the UAPI is still experimental
[ 2.524358] [drm] Initialized etnaviv 1.4.0 for etnaviv on minor 0
```
So, the GPU and NPU drivers appear loaded properly, and the hardware is detected at boot, but the NPU delegate cannot find any usable NN core.
Has anyone encountered this "No NPU found" issue on iMX8MP when using the npu_delegate?
Could it be related to software configuration, kernel module support, firmware, or the Teflon/Mesa driver versions?
Any pointers on how to resolve the "We need at least 1 NN core" abort would be appreciated.
Thank you!