onnxruntime
[QNN EP Quantization] Add fusion preprocessing to QNN quantization
#18719
Merged

[QNN EP Quantization] Add fusion preprocessing to QNN quantization #18719

jywu-mysoft merged 63 commits into main from adrianl/qnn-ep-quant-fusions
adrianlizarraga
adrianlizarraga First pass at supporting tensor quantization overrides
e434a68e
adrianlizarraga Run lintrunner
83139ec0
adrianlizarraga Start creating QNN specific quantization configs
3f6dd878
adrianlizarraga Try to override for MatMul, Sigmoid, Tanh
ba3c6823
adrianlizarraga Fix import issue and assert
d499d97d
adrianlizarraga Fix quant type data type
046d8f44
adrianlizarraga Add option for qdq contrib ops
98e6b757
adrianlizarraga Only override weights for LayerNorm and MatMul
f59a8a8b
adrianlizarraga Separate handling of MatMul and LayerNorm
cca480e2
adrianlizarraga Set DedicatedQDQPair to false
1f1e5e03
adrianlizarraga Provide a value for symmetric when overriding weight types
1182893c
adrianlizarraga Automatically set op_types_to_quantize
40d304cb
adrianlizarraga Treat bias tensors as weights if the user provides quantization overr…
6a5af05e
adrianlizarraga Use quant_type variable properly
06ca8d61
adrianlizarraga Add TODO to remove UseQDQContribOps extra_option
c7cb8993
adrianlizarraga Update tensor overrides doc comment
b0516519
adrianlizarraga Ok to quantize Transpose
724f0df9
adrianlizarraga Merge latest from main
c35d7cf2
adrianlizarraga Treat initializers for Add, Sub, Mul, Div as weights
aa673b6f
adrianlizarraga Add qnn quantization directories to python package
476f10a8
adrianlizarraga Do not treat initializer inputs to Add/Mul as weights
c4523527
adrianlizarraga Pass in final value of reduce_range to quantize_initializer() function
c0b95f20
adrianlizarraga Get quant overrides from within quantize_initializer()
84bf83a7
adrianlizarraga Use quant overrides for per-channel weights
198c21f1
adrianlizarraga Change qType to quant_type to appease the python linter
97fd781f
adrianlizarraga Add some validation for tensor quant overrides
f9015bff
adrianlizarraga Use existing helper to check if input is an initializer
d927c658
adrianlizarraga Add unit tests for tensor quant overrides (QDQ)
e5db60ce
adrianlizarraga Fix linter issues
b910f652
adrianlizarraga Use variable consistently
418d2b9c
adrianlizarraga Add test for bias overrides
1da0b787
adrianlizarraga Add more validation tests
49b477a8
adrianlizarraga Address CodeQL notices
8bb660f3
adrianlizarraga Merge latest from main
d270e451
adrianlizarraga Add Gelu fusion to QNN EP-specific quantization utilities
4e18dff3
adrianlizarraga Run lintrunner
cbe7da43
adrianlizarraga Add support for ReduceL2 fusion into LpNormalization for QNN EP
b6298028
adrianlizarraga Run lintrunner
f38ec8b8
adrianlizarraga Simplify getting constant inputs for ReduceL2 fusion
17361b4a
adrianlizarraga rename fusion
cf5d7dc3
adrianlizarraga Add array bounds check for input. Make epsilon a constructor arg
82ce49af
adrianlizarraga Fix Softmax QDQ handling for 16-bit
c2f7a994
adrianlizarraga Fix 16-bit computation of scale/zero_point for QDQ Softmax
e973fae6
adrianlizarraga Add LayerNorm fusion (optional)
f542af45
adrianlizarraga Fix merge conflicts
f4c85549
adrianlizarraga Fix merge conflicts
b1cbc24c
adrianlizarraga Merge latest main
5fa2b7fc
adrianlizarraga Merge branch 'main' into adrianl/qnn-ep-quant-config
193490d0
adrianlizarraga Allow overriding initializer rmin, rmax, scale, or zero_point
8d2a1f88
adrianlizarraga Updated to handle per-channel quantization overrides
fca3ef6d
adrianlizarraga Clean up
8cbed6a8
adrianlizarraga Rename variable
a2627457
adrianlizarraga Add another per-channel quantization override test
bd3974c7
adrianlizarraga Fix merge conflicts
29551fc6
adrianlizarraga Merge branch 'main' into adrianl/qnn-ep-quant-fusions
b924be1a
adrianlizarraga Fix merge conflicts with main
c0b29cf6
adrianlizarraga Move common fusions up a level
79292630
adrianlizarraga Add lintrunner
e619254c
adrianlizarraga Move some model helpers into fusion.py
b0c43c7c
adrianlizarraga Forgot to refactor one function call
668f3c27
adrianlizarraga adrianlizarraga requested a review from HectorSVC HectorSVC 2 years ago
adrianlizarraga adrianlizarraga requested a review from jywu-mysoft jywu-mysoft 2 years ago
adrianlizarraga Merge branch 'main' into adrianl/qnn-ep-quant-fusions
34c8b652
jywu-mysoft
adrianlizarraga Add new py sources to package
3a4051eb
adrianlizarraga
adrianlizarraga Merge branch 'main' into adrianl/qnn-ep-quant-fusions
c75028bc
HectorSVC
HectorSVC approved these changes on 2023-12-12
jywu-mysoft
jywu-mysoft approved these changes on 2023-12-12
jywu-mysoft jywu-mysoft merged 81796a30 into main 2 years ago
jywu-mysoft jywu-mysoft deleted the adrianl/qnn-ep-quant-fusions branch 2 years ago

Login to write a write a comment.

Login via GitHub

Assignees
No one assigned
Labels
Milestone