tflite: mtk_neuron: Reject AsymI16 quantization on MT8188 MDLA According to the document, MT8188 MDLA does not support AsymI16 operations. Therefore, we should reject such operations if encountered. Note that MT8196 MDLA does support it, so we should check for the platform here. BUG=b:338959718 TEST=cros_sdk tast run $CIRI_DUT 'tflite.DTS.neuron' Change-Id: Ic0402060cb3f70a7d922b9cd4d1905117d92fc75 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/tflite/+/6275669 Auto-Submit: Tommy Chiang <ototot@google.com> Tested-by: Tommy Chiang <ototot@google.com> Reviewed-by: Shik Chen <shik@chromium.org> Commit-Queue: ChromeOS Auto Retry <chromeos-auto-retry@chromeos-bot.iam.gserviceaccount.com>
diff --git a/delegate/mtk_neuron/neuron_delegate_validation.cc b/delegate/mtk_neuron/neuron_delegate_validation.cc index 4d9875c..a40e7bb 100644 --- a/delegate/mtk_neuron/neuron_delegate_validation.cc +++ b/delegate/mtk_neuron/neuron_delegate_validation.cc
@@ -863,6 +863,13 @@ Expect(quantization_params.scale > 0.f, NeuronValidationFailureType::kUnsupportedQuantizationParameters, "Input quantization scale should be > 0.", &val_ctx); + // MT8188 MDLA does not support asymi16 + if (value_type == kTfLiteInt16 && neuron_version.major == 6) { + Expect( + quantization_params.zero_point == 0, + NeuronValidationFailureType::kUnsupportedQuantizationParameters, + "Input quantization zero point should be 0.", &val_ctx); + } } const auto output_type = TfLiteOpaqueTensorType(TfLiteOpaqueNodeGetOutput(context, node, 0));