updated QDQ config for SqueezeNet#378
Merged
Merged
Conversation
vortex-captain
approved these changes
Apr 22, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Closes
properties_not_foundgaps surfaced by a QNN/NPU coverage scan of SqueezeNet. All gaps collapsed to one pattern — dangling QDQ: nodes whose inputs or outputs are not wrapped by a DQ/Q node in the real model, producing filters likeQDQ_Y=NoneorQDQ_A=Nonethat had no matching row in the EP's support table.Post-scan on
SqueezeNet_opt.onnx→ 0 gaps.Generator changes
binary_input_generator.pyBinaryInputGenerator.get_qdq_config()— addsupport_non_qdq=Trueon A and BMulwithQDQ_A=None, QDQ_B=None(raw-float inputs feeding a quantized Mul). Inherited by Add/Sub/Mul/Div/Pow/And/Or/Bitwise*/PRelu/BitShift/Mod. Comparison and Where override and are unaffected.flatten_input_generator.py"output"key withsupport_activation=True, support_non_qdq=TrueFlattenwithQDQ_output=Noneglobal_pooling_input_generator.py"Y"key with the same two flagsGlobalAveragePoolwithQDQ_Y=Noneconv_input_generator.pySupportedONNXType.INT8to B'sqdq_typesConvwithQDQ_B=INT8(INT8-quantized bias observed in P1 models). Marked with aTODO— revisit once EP-level INT8 bias support is confirmed/rejected.Test count updates
tests/unit/analyze/core/test_qdq.py::test_qdq_total_count— re-derived with per-bucket decompositions so the math is explicit:binary_input_shapes * 80 = 3440, broken down by(A, B)should_qdq combo: 28 (Q,Q) + 20 (Q,raw) + 20 (raw,Q) + 12 (raw,raw).1536 * 5 = 7680, five bias states (no bias / INT32 / INT8 / non-QDQ constant / non-QDQ non-constant) each yielding 1536 models.28 * 4 * 2 = 224(output Q-wrapped or not).3 * 4 * 2 = 24.Full
tests/unit/analyze/suite green (1341 passed, pre-existing skips unchanged).