From 2139be84e6d51ef039d1f1bf5b0bc60969fa2381 Mon Sep 17 00:00:00 2001 From: Alexander Bengtsson Date: Tue, 11 Mar 2025 15:18:58 +0100 Subject: [PATCH] MLBEDSW-10535: Fix CPU-fallback regressions Supported-operator checks were causing unnecessary CPU-fallback - Add more exceptions to ConstraintTensQuantized - Add Bool and Bool8 to Ethos-U85 supportedDataTypes - Add Squeeze, ExpandDims and SquaredDifference to supportedOpType sets Change-Id: I472628448a198cf877e24839034a6e70a3709d27 Signed-off-by: Alexander Bengtsson --- ethosu/regor/test/test_tflite_supported_operators.cpp | 2 +- ethosu/regor/tflite/tflite_supported_operators.cpp | 8 ++++++++ ethosu/regor/tflite/tflite_supported_operators_u55.cpp | 3 +++ ethosu/regor/tflite/tflite_supported_operators_u85.cpp | 6 +++++- 4 files changed, 17 insertions(+), 2 deletions(-) diff --git a/ethosu/regor/test/test_tflite_supported_operators.cpp b/ethosu/regor/test/test_tflite_supported_operators.cpp index 987185d0..154c1be1 100644 --- a/ethosu/regor/test/test_tflite_supported_operators.cpp +++ b/ethosu/regor/test/test_tflite_supported_operators.cpp @@ -278,7 +278,6 @@ TEST_CASE("Supported operators EthosU85") DataType::Float16, DataType::Float32, DataType::Float64, - DataType::Bool8, DataType::Complex, DataType::Complex64, DataType::Complex128, @@ -293,6 +292,7 @@ TEST_CASE("Supported operators EthosU85") DataType::Int16, DataType::Int32, DataType::Bool, + DataType::Bool8, DataType::Int64, }; for ( auto dtype : unsupported ) diff --git a/ethosu/regor/tflite/tflite_supported_operators.cpp b/ethosu/regor/tflite/tflite_supported_operators.cpp index 25d2296e..7fdd1337 100644 --- a/ethosu/regor/tflite/tflite_supported_operators.cpp +++ b/ethosu/regor/tflite/tflite_supported_operators.cpp @@ -151,6 +151,14 @@ bool TfLiteSupportedOperators::ConstraintTensQuantized(const Operation *op) case OpType::Transpose: case OpType::GatherNd: case OpType::GatherV2: + case OpType::Select: + case OpType::SelectV2: + case OpType::ScatterNd: + case OpType::Pad: + case OpType::PadV2: + case OpType::ReduceAll: + case OpType::ReduceAny: + case OpType::ExpandDims: return true; default: break; diff --git a/ethosu/regor/tflite/tflite_supported_operators_u55.cpp b/ethosu/regor/tflite/tflite_supported_operators_u55.cpp index b65df18a..c3dc1582 100644 --- a/ethosu/regor/tflite/tflite_supported_operators_u55.cpp +++ b/ethosu/regor/tflite/tflite_supported_operators_u55.cpp @@ -53,6 +53,7 @@ TfLiteSupportedOperatorsU55::TfLiteSupportedOperatorsU55(IArchitectureConstraint OpType::Transpose, OpType::Mean, OpType::Sub, + OpType::Squeeze, OpType::StridedSlice, OpType::Exp, OpType::Split, @@ -64,11 +65,13 @@ TfLiteSupportedOperatorsU55::TfLiteSupportedOperatorsU55(IArchitectureConstraint OpType::Slice, OpType::TransposeConv2D, OpType::Tile, + OpType::ExpandDims, OpType::ReduceSum, OpType::Rsqrt, OpType::Pack, OpType::Unpack, OpType::LeakyRelu, + OpType::SquaredDifference, OpType::MirrorPad, OpType::Abs, OpType::SplitV, diff --git a/ethosu/regor/tflite/tflite_supported_operators_u85.cpp b/ethosu/regor/tflite/tflite_supported_operators_u85.cpp index 918f81d1..a5db7132 100644 --- a/ethosu/regor/tflite/tflite_supported_operators_u85.cpp +++ b/ethosu/regor/tflite/tflite_supported_operators_u85.cpp @@ -55,6 +55,7 @@ TfLiteSupportedOperatorsU85::TfLiteSupportedOperatorsU85(IArchitectureConstraint OpType::Mean, OpType::Sub, OpType::Div, + OpType::Squeeze, OpType::StridedSlice, OpType::Exp, OpType::Split, @@ -71,6 +72,7 @@ TfLiteSupportedOperatorsU85::TfLiteSupportedOperatorsU85(IArchitectureConstraint OpType::Slice, OpType::TransposeConv2D, OpType::Tile, + OpType::ExpandDims, OpType::Equal, OpType::NotEqual, OpType::ReduceSum, @@ -85,6 +87,7 @@ TfLiteSupportedOperatorsU85::TfLiteSupportedOperatorsU85(IArchitectureConstraint OpType::LogicalNot, OpType::ResizeNearestNeighbor, OpType::LeakyRelu, + OpType::SquaredDifference, OpType::MirrorPad, OpType::Abs, OpType::SplitV, @@ -108,7 +111,8 @@ TfLiteSupportedOperatorsU85::TfLiteSupportedOperatorsU85(IArchitectureConstraint DataType::Int16, DataType::Int32, DataType::Int64, - DataType::Bool + DataType::Bool, + DataType::Bool8 // clang-format on }; _checks = { -- GitLab