onnxruntime
680fac64 - [QNN EP] Support non-quantized Op on HTP (#17194)

Commit
2 years ago
[QNN EP] Support non-quantized Op on HTP (#17194) ### Description [QNN EP] Support non-quantized Op on HTP 1. Remove the limitation in GetCapability that always require QDQ node unit group to partition the node on NPU backend. So that we can support non-quantized Slice op with int32 data input on HTP. 2. Enable Where QDQ node unit 3. Separate out the flag is_npu_backend & is_quantized_node to make it clear 4. Separate output QuantizeLinear, DequantizeLinear to QdqOpBuilder to better identify quantized/un-quantized input/output tensor 5. Separate out a TransposeOpBuilder to make it simple for Transpose node processing. Especially for Single Transpose node in QDQ model, for case like Q->Tranpose->DQ, Transpose is not QDQ node unit group, it's single node. But we should treat it as quantized node. Output should has same data type and quantization parameter with input. Another case is to support non-quantized data for Transpose in QDQ model. 6. Remove is_npu_backend flag from OpBuilder interface. Set the backend type in QnnBackendManager, QnnMOdel & QnnModelWrapper, so that OpBuilders can always get it from QnnModelWrapper. 7. Add unit tests for quantized/non-quantized Transpose (int32, float32) on HTP backend
Author
Parents
Loading