🌟 Summary
Ultralytics v8.4.56 improves QNN export reliability by fixing compatibility with newer onnxruntime-qnn packages, especially on Linux x86-64. 🚀
📊 Key Changes
-
Fixed QNN export for built-in provider wheels 🔧
Ultralytics now detects whetheronnxruntime-qnnalready includesQNNExecutionProviderinternally, instead of always trying to register it as a separate plugin. -
Avoids export failures on some Linux setups 🐧
This prevents a known failure on Linux x86-64 wheels where plugin registration could crash with an undefined symbol error. -
Supports both QNN packaging styles 📦
The export flow now works with:- plugin-based QNN wheels, where the provider must be registered manually
- built-in QNN wheels, where registration is not needed
-
Smarter QNN session creation 🧠
If the provider is built in, Ultralytics now launches the ONNX Runtime session directly with the QNN provider. If it is plugin-based, it keeps the previous registration path. -
Documentation/comments updated for clarity 📝
Internal descriptions were updated to reflect that QNN may be exposed either as a plugin or as a built-in ONNX Runtime provider.
🎯 Purpose & Impact
-
Makes QNN export more robust ✅
Users exporting models to Qualcomm QNN should see fewer environment-specific errors and smoother exports. -
Improves compatibility with newer runtime wheels 🔄
This is especially helpful asonnxruntime-qnnpackaging evolves across platforms and releases. -
Reduces setup friction for deployment 📱
If you are exporting YOLO models like YOLO26 for Qualcomm and edge hardware workflows, this change lowers the chance of export-time breakage. -
No major model architecture changes in this release 🤖
v8.4.56is mainly a stability and export compatibility update, not a new model or training feature release. -
Most relevant for advanced deployment users ⚡
If you use standard training and inference, this release may not change much day to day. But for users targeting QNN / Qualcomm deployment pipelines, it should have a meaningful positive impact.
🙌 Bottom line
This release is a small but important deployment fix: it makes QNN export smarter and more portable by handling both old and new onnxruntime-qnn layouts correctly, with the biggest benefit for Linux-based export environments.
What's Changed
- Fix QNN export with built-in provider wheels by @glenn-jocher in #24618
Full Changelog: v8.4.55...v8.4.56