Troubleshooting
How to approach an Ethos-U problem
Most Ethos-U issues fall into one of three groups:
- The target profile or backend is not available.
- The model does not map well to the target.
- The run succeeds, but the numbers are not telling a clear story yet.
Start by deciding which group you are in. That makes it much easier to pick the right next check.
Target or backend not available
Target profile not found
If MLIA cannot find the target profile, start with discovery rather than with performance debugging.
- Run
mlia target listto confirm the profile name. - Use an explicit TOML path if you are testing a custom profile.
- Check that
mlia-ethos-uis installed in the active environment.
If the profile is missing from discovery, there is no point debugging Vela or Corstone yet.
Vela or Corstone backend missing
If the backend is unavailable, confirm installation first.
- Run
mlia backend list. - Install or reinstall the backend through the MLIA backend management workflow in your environment.
Model does not map cleanly
Many unsupported operators
When Vela reports broad compatibility problems, treat that as a model-mapping question before treating it as a performance question.
- Review whether the model is properly quantized.
- Check whether the model includes operators that do not map well to Ethos-U.
- Rerun with
--compatibilityto isolate support issues before reading performance output.
Model format problems
If the model is rejected early or support looks much worse than expected, check the input itself first.
- Ensure the input model is a valid
.tflitefile. - Prefer quantized LiteRT / TensorFlow Lite
.tflitemodels for Ethos-U analysis. - Re-check export settings if operator coverage looks unexpectedly poor.
For the Corstone ExecuTorch path:
- Use
.pt2only whenmlia-converters-pytorchis installed. - Use
.pteonly with Ethos-U55 /corstone-300or Ethos-U85 /corstone-320. - Do not expect
.ptefiles to participate in the normal Vela compatibility flow.
For Ethos-U65, use the original .pt2 model with --performance --backend vela.
The U65 Corstone runners support TFLite, but not ExecuTorch .pte models.
Ethos-U65 .pte performance is currently unsupported. See the
support matrix.
The run succeeds, but the numbers are not helpful yet
Memory pressure looks high
If memory-related metrics dominate, investigate movement and layout before you assume the arithmetic path is the main problem.
- Check
dram_access_cyclesand SRAM-related metrics. - Compare the top-level cycle totals with operator-level hot spots.
- Try a different target profile or custom profile if that matches your hardware story.
Corstone run is much slower than Vela
This is usually expected. Corstone is a heavier path aimed at deeper validation.
- Use Vela for rapid iteration.
- Reserve Corstone for deeper validation or when system context matters.
Corstone metrics are hard to compare with Vela
That is normal too. The two backends are useful in different ways.
- Compare overall cycle-oriented metrics first.
- Then use Corstone's richer layer and bus-level signals to explain the difference.
- Treat differences as clues, not as proof that one backend is wrong.
Escalation path
If you are unsure whether the issue belongs to the target package or the core package:
- Confirm the target profile and backend used in the run.
- Check whether the failure happens before or after backend execution begins.
- Move to the core
mliapackage only when the problem looks like CLI orchestration or plugin discovery rather than Ethos-U behaviour.