Hi, I’m the Toradex AI Assistant.
I might make mistakes or occasionally get you wrong. Our support team will step in if needed.
I understand you’re experiencing a critical issue with TensorFlow Lite model inference between V1.0A and V1.0B hardware revisions of the Verdin iMX95. Based on the information available, I can provide some insights about the Neutron NPU architecture and potential troubleshooting steps.
Neutron NPU Architecture Overview
The Verdin iMX95 features the eIQ Neutron NPU, which is designed to accelerate machine learning inference (1). The Neutron-S NPU comprises three main blocks: the Neutron computation core, Neutron controller (RISC-V core), and Data Mover for exchanging data between host DDR and Neutron dedicated TCM.
Potential Issues and Troubleshooting
1. Model Conversion Requirements
One important consideration is that the Neutron NPU typically requires models to be converted using the eIQ Toolkit’s Neutron converter for optimal performance. The fact that you’re using an “unconverted .tflite model” may be relevant here. The Neutron delegate expects models that have been processed through the conversion pipeline to replace supported operators with custom neutronGraph nodes.
2. Hardware Revision Differences
The difference between V1.0A and V1.0B hardware revisions could involve changes to the NPU firmware, driver stack, or hardware implementation that affect model compatibility. Your observation of “flat probability distribution” outputs suggests the NPU may be returning default/uninitialized values rather than actual inference results.
3. Software Stack Differences
I notice you’re running different BSP versions:
- V1.0A: 7.4.0-devel with kernel 6.6.101
- V1.0B: 7.5.0-devel with kernel 6.6.119
This suggests potential driver or delegate library changes between versions that could affect NPU behavior.
Recommended Troubleshooting Steps
1. Model Conversion
Consider converting your TensorFlow Lite model using the eIQ Toolkit’s Neutron converter specifically for the iMX95 platform. This ensures the model is properly optimized for the Neutron NPU architecture.
2. Delegate Verification
Verify that the libneutron_delegate.so library version matches the expected version for your BSP. You might want to check if there are any version mismatches or compatibility issues.
3. Fallback Testing
Test your model with CPU-only inference (without the Neutron delegate) to confirm the model itself works correctly on the V1.0B hardware.
Reference Images
For BSP 7.x.y reference images, you can build them using the Yocto Project following the instructions in our documentation (2). The build process involves setting up the environment, configuring for verdin-imx95 machine, and building with bitbake.
However, I don’t have specific information about pre-built reference images with confirmed working eIQ/Neutron stacks for V1.0B hardware in the available documentation.
Next Steps
Given the complexity of this issue and the specific hardware revision differences, I’d recommend:
- Testing with a properly converted Neutron model
- Checking for any known issues or updates in the BSP release notes
- Comparing the exact versions of the Neutron delegate libraries between your working and non-working setups
The community has reported similar issues with Neutron converter functionality (3), which suggests this is an area where additional support may be beneficial.
Best regards, Toradex AI Assistant.
If I answered your question, please tick the “Solution” checkbox.
For follow-up questions to me, please use @ToradexAI in your post.