Neuron Adapter API: failed `NeuronCompilation_restoreFromCompiledNetwork`

Problem Description

I’ve been trying to deploy a DLA model file on G-520 platform, via Neuron Adapter API. Previously I’ve successfully deploy the same model file on the same device, via Neuron Runtime API, from loading the DLA file to performing inference. However, this is done by disabling SElinux to remove the blocker of acquiring APU instance, which is clearly inappropriate. In post how-to-resolve-dla-permission-issues the specialist recommended using U-SDK, or Neuron Adapter API to avoid permission issues, so I retried and find myself blocked by these errors:
image
Besides, the apuware_hidl also presented an error, not sure whether it’s related:
image

The online document and the header file noted that NEURON_BAD_DATA would be returned when the arch/version of the DLA file doesn’t match the arch/version of Neuron Adapter on the device or the data is corrupted. Considering the fact that the same DLA file can be loaded and inferring via Runtime API, the most possible cause should be version mismatch. So I checked the version of ncc-tflite tool used to construct the DLA file and found 8.2.22, while adb shell strings /system_ext/lib64/libneuronusdk_adapter.mtk.so | grep -iE "neuropilot|neuron|[0-9]+\.[0-9]+\.[0-9]+" gave me 8.2.19.

The original ncc-tflite tool came from the all-in-one-bundle, which doesn’t include the mt8189/ and the version of that package is 8.0.11 basic. Thinking that this might be the cause, I downloaded the 20250423_Neuron_SDK_v1.2517.03_neuron-8.0-release.tar.gz targeted for mt8189/G520 and used the host/bin/ncc-tflite to generate a new DLA model, only to run into the same blocker again:
image

I checked the version of ncc-tflite in this new package, and got 8.2.22. That confuses me deeply: is this really the cause of my loading problem? The online document mentions that


Is it true that the checking be so strict that it’s not enough to have the main version and the sub version equal, but also requires the sub-sub version to be equivalent? Or something else is incorrect? If it’s really the version mismatch, where can I download the toolkit that can produce a cache version of 8.2.19?


Update

I inserted jniLibs/arm64-v8a/libneuron_adapter.so to force the android program to read from Neuron 8.2.22, but the problem remains. So probably something else has caused the problem.
image

Hi Haiqi_Zeng,

Thanks for reaching out!

For the version mismatch issue, you can actually swap the .so files yourself to resolve it.

The SDK package you downloaded already includes the 8.2.22 version of the library. You can find it under:

20250423_Neuron_SDK_v1.2517.03_neuron-8.0-release_release/mt8189/lib/

Inside that folder you’ll see the files shown in the attached screenshot.

Best,
Jun