Skip to content

Commit ddde88f

Browse files
committed
[Quant] add uint8 output bindings to QuantChecker / DequantChecker
QuantChecker.checkOutputType (added by the NE16-Linear PR) requires opSigned == outputTypeSigned. Existing Generic and PULPOpen bindings only registered the signed-int8 output variant, so any Quant pattern with signed=0 (e.g. 4-bit unsigned quantization in Models/Transformer_DeepQuant) had no candidate and parsing exhausted backtracking. Add uint8 output to BasicQuantBindings and uint8 input to BasicDequantBindings in both Targets/Generic/Bindings.py and Targets/PULPOpen/Bindings.py. Verified: Models/Transformer_DeepQuant network gen now succeeds for both Generic and Siracusa platforms.
1 parent e46a09a commit ddde88f

2 files changed

Lines changed: 8 additions & 2 deletions

File tree

Deeploy/Targets/Generic/Bindings.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -291,12 +291,15 @@
291291
BasicQuantBindings = [
292292
NodeBinding(QuantChecker([PointerClass(float32_t)], [PointerClass(int8_t)]), QuantTemplate.referenceTemplate,
293293
BasicTransformer),
294+
NodeBinding(QuantChecker([PointerClass(float32_t)], [PointerClass(uint8_t)]), QuantTemplate.referenceTemplate,
295+
BasicTransformer),
294296
]
295297

296298
BasicDequantBindings = [
297299
NodeBinding(DequantChecker([PointerClass(int8_t)], [PointerClass(float32_t)]), DequantTemplate.referenceTemplate,
298300
BasicTransformer),
299-
] + [
301+
NodeBinding(DequantChecker([PointerClass(uint8_t)], [PointerClass(float32_t)]), DequantTemplate.referenceTemplate,
302+
BasicTransformer),
300303
NodeBinding(DequantChecker([PointerClass(int32_t)], [PointerClass(float32_t)]), DequantTemplate.referenceTemplate,
301304
BasicTransformer),
302305
]

Deeploy/Targets/PULPOpen/Bindings.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -453,12 +453,15 @@
453453
BasicQuantBindings = [
454454
NodeBinding(QuantChecker([PointerClass(float32_t)], [PointerClass(int8_t)]), QuantTemplate.referenceTemplate,
455455
ForkTransformer),
456+
NodeBinding(QuantChecker([PointerClass(float32_t)], [PointerClass(uint8_t)]), QuantTemplate.referenceTemplate,
457+
ForkTransformer),
456458
]
457459

458460
BasicDequantBindings = [
459461
NodeBinding(DequantChecker([PointerClass(int8_t)], [PointerClass(float32_t)]), DequantTemplate.referenceTemplate,
460462
ForkTransformer),
461-
] + [
463+
NodeBinding(DequantChecker([PointerClass(uint8_t)], [PointerClass(float32_t)]), DequantTemplate.referenceTemplate,
464+
ForkTransformer),
462465
NodeBinding(DequantChecker([PointerClass(int32_t)], [PointerClass(float32_t)]), DequantTemplate.referenceTemplate,
463466
ForkTransformer),
464467
]

0 commit comments

Comments
 (0)