aboutsummaryrefslogtreecommitdiff
path: root/1.3
diff options
context:
space:
mode:
authorTeresa Charlin <teresa.charlinreyes@arm.com>2021-12-03 16:07:42 +0000
committerMike Kelly <mike.kelly@arm.com>2023-03-14 18:30:34 +0000
commitee5872d95455351458ad4373176360200594daa1 (patch)
tree63207fa1e397e1c3cf87072d93c490a234935a8c /1.3
parentde547168f108ec1494f18b3ab1ea50bd09f370c1 (diff)
downloadandroid-nn-driver-ee5872d95455351458ad4373176360200594daa1.tar.gz
IVGCVSW-3809 Refactor Elementwise Binary ops to use ElementwiseBinaryLayer
!armnn:9319 * Refactored all functions to convert Add, Div, Maximum, Minimum, Mul and Sub to use ElementwiseBinary layers instead. Signed-off-by: Teresa Charlin <teresa.charlinreyes@arm.com> Signed-off-by: Mike Kelly <mike.kelly@arm.com> Change-Id: Ic05885cd8692e7f1b7032862fb4a395af70e0bcd Signed-off-by: Mike Kelly <mike.kelly@arm.com> Change-Id: If9717d6ab236d97c76f6cd39b96bde86c81e4382
Diffstat (limited to '1.3')
-rw-r--r--1.3/HalPolicy.cpp53
-rw-r--r--1.3/HalPolicy.hpp17
2 files changed, 18 insertions, 52 deletions
diff --git a/1.3/HalPolicy.cpp b/1.3/HalPolicy.cpp
index 5563e806..16b325ba 100644
--- a/1.3/HalPolicy.cpp
+++ b/1.3/HalPolicy.cpp
@@ -1,5 +1,5 @@
//
-// Copyright © 2020 Arm Ltd. All rights reserved.
+// Copyright © 2020-2023 Arm Ltd and Contributors. All rights reserved.
// SPDX-License-Identifier: MIT
//
@@ -24,7 +24,7 @@ bool HalPolicy::ConvertOperation(const Operation& operation, const Model& model,
case V1_3::OperationType::ABS:
return ConvertElementwiseUnary(operation, model, data, UnaryOperation::Abs);
case V1_3::OperationType::ADD:
- return ConvertAdd(operation, model, data);
+ return ConvertElementwiseBinary(operation, model, data, BinaryOperation::Add);
case V1_3::OperationType::ARGMAX:
return ConvertArgMinMax(operation, model, data, ArgMinMaxFunction::Max);
case V1_3::OperationType::ARGMIN:
@@ -48,7 +48,7 @@ bool HalPolicy::ConvertOperation(const Operation& operation, const Model& model,
case V1_3::OperationType::DEQUANTIZE:
return ConvertDequantize(operation, model, data);
case V1_3::OperationType::DIV:
- return ConvertDiv(operation, model, data);
+ return ConvertElementwiseBinary(operation, model, data, BinaryOperation::Div);
case V1_3::OperationType::ELU:
return ConvertElu(operation, model, data);
case V1_3::OperationType::EQUAL:
@@ -102,13 +102,13 @@ bool HalPolicy::ConvertOperation(const Operation& operation, const Model& model,
case V1_3::OperationType::MAX_POOL_2D:
return ConvertMaxPool2d(operation, model, data);
case V1_3::OperationType::MAXIMUM:
- return ConvertMaximum(operation, model, data);
+ return ConvertElementwiseBinary(operation, model, data, BinaryOperation::Maximum);
case V1_3::OperationType::MEAN:
return ConvertMean(operation, model, data);
case V1_3::OperationType::MINIMUM:
- return ConvertMinimum(operation, model, data);
+ return ConvertElementwiseBinary(operation, model, data, BinaryOperation::Minimum);
case V1_3::OperationType::MUL:
- return ConvertMul(operation, model, data);
+ return ConvertElementwiseBinary(operation, model, data, BinaryOperation::Mul);
case V1_3::OperationType::NEG:
return ConvertElementwiseUnary(operation, model, data, UnaryOperation::Neg);
case V1_3::OperationType::NOT_EQUAL:
@@ -164,7 +164,7 @@ bool HalPolicy::ConvertOperation(const Operation& operation, const Model& model,
case V1_3::OperationType::STRIDED_SLICE:
return ConvertStridedSlice(operation, model, data);
case V1_3::OperationType::SUB:
- return ConvertSub(operation, model, data);
+ return ConvertElementwiseBinary(operation, model, data, BinaryOperation::Sub);
case V1_3::OperationType::TRANSPOSE:
return ConvertTranspose(operation, model, data);
case V1_3::OperationType::TRANSPOSE_CONV_2D:
@@ -179,12 +179,6 @@ bool HalPolicy::ConvertOperation(const Operation& operation, const Model& model,
}
}
-bool HalPolicy::ConvertAdd(const Operation& operation, const Model& model, ConversionData& data)
-{
- ALOGV("hal_1_3::HalPolicy::ConvertAdd()");
- return ::ConvertAdd<hal_1_3::HalPolicy>(operation, model, data);
-}
-
bool HalPolicy::ConvertArgMinMax(const V1_3::Operation& operation,
const V1_3::Model& model,
ConversionData& data,
@@ -257,10 +251,13 @@ bool HalPolicy::ConvertDequantize(const Operation& operation, const Model& model
return ::ConvertDequantize_1_2<hal_1_3::HalPolicy>(operation, model, data);
}
-bool HalPolicy::ConvertDiv(const Operation& operation, const Model& model, ConversionData& data)
+bool HalPolicy::ConvertElementwiseBinary(const Operation& operation,
+ const Model& model,
+ ConversionData& data,
+ BinaryOperation binaryOperation)
{
- ALOGV("hal_1_3::HalPolicy::ConvertDiv()");
- return ::ConvertDiv<hal_1_3::HalPolicy>(operation, model, data);
+ ALOGV("hal_1_3::HalPolicy::ConvertElementwiseBinary()");
+ return ::ConvertElementwiseBinary<hal_1_3::HalPolicy>(operation, model, data, binaryOperation);
}
bool HalPolicy::ConvertElementwiseUnary(const Operation& operation,
@@ -382,30 +379,12 @@ bool HalPolicy::ConvertMaxPool2d(const Operation& operation, const Model& model,
return ConvertPooling2d<hal_1_3::HalPolicy>(operation, __func__, PoolingAlgorithm::Max, model, data);
}
-bool HalPolicy::ConvertMaximum(const Operation& operation, const Model& model, ConversionData& data)
-{
- ALOGV("hal_1_3::HalPolicy::ConvertMaximum()");
- return ::ConvertMaximum<hal_1_3::HalPolicy>(operation, model, data);
-}
-
bool HalPolicy::ConvertMean(const Operation& operation, const Model& model, ConversionData& data)
{
ALOGV("hal_1_3::HalPolicy::ConvertMean()");
return ::ConvertMean<hal_1_3::HalPolicy>(operation, model, data);
}
-bool HalPolicy::ConvertMinimum(const Operation& operation, const Model& model, ConversionData& data)
-{
- ALOGV("hal_1_3::HalPolicy::ConvertMinimum()");
- return ::ConvertMinimum<hal_1_3::HalPolicy>(operation, model, data);
-}
-
-bool HalPolicy::ConvertMul(const Operation& operation, const Model& model, ConversionData& data)
-{
- ALOGV("hal_1_3::HalPolicy::ConvertMul()");
- return ::ConvertMul<hal_1_3::HalPolicy>(operation, model, data);
-}
-
bool HalPolicy::ConvertPad(const Operation& operation, const Model& model, ConversionData& data)
{
ALOGV("hal_1_3::HalPolicy::ConvertPad()");
@@ -508,12 +487,6 @@ bool HalPolicy::ConvertSoftmax(const Operation& operation, const Model& model, C
return ::ConvertSoftmax<hal_1_3::HalPolicy>(operation, model, data);
}
-bool HalPolicy::ConvertSub(const Operation& operation, const Model& model, ConversionData& data)
-{
- ALOGV("hal_1_3::HalPolicy::ConvertSub()");
- return ::ConvertSub<hal_1_3::HalPolicy>(operation, model, data);
-}
-
bool HalPolicy::ConvertTanH(const Operation& operation, const Model& model, ConversionData& data)
{
ALOGV("hal_1_3::HalPolicy::ConvertTanH()");
diff --git a/1.3/HalPolicy.hpp b/1.3/HalPolicy.hpp
index 7411b24b..63e5ee7c 100644
--- a/1.3/HalPolicy.hpp
+++ b/1.3/HalPolicy.hpp
@@ -1,5 +1,5 @@
//
-// Copyright © 2020 Arm Ltd. All rights reserved.
+// Copyright © 2020-2023 Arm Ltd and Contributors. All rights reserved.
// SPDX-License-Identifier: MIT
//
@@ -36,8 +36,6 @@ public:
static bool ConvertOperation(const Operation& operation, const Model& model, ConversionData& data);
private:
- static bool ConvertAdd(const Operation& operation, const Model& model, ConversionData& data);
-
static bool ConvertArgMinMax(const Operation& operation,
const Model& model,
ConversionData& data,
@@ -66,7 +64,10 @@ private:
static bool ConvertDequantize(const Operation& operation, const Model& model, ConversionData& data);
- static bool ConvertDiv(const Operation& operation, const Model& model, ConversionData& data);
+ static bool ConvertElementwiseBinary(const Operation& operation,
+ const Model& model,
+ ConversionData& data,
+ armnn::BinaryOperation binaryOperation);
static bool ConvertElementwiseUnary(const Operation& operation,
const Model& model,
@@ -112,14 +113,8 @@ private:
static bool ConvertMaxPool2d(const Operation& operation, const Model& model, ConversionData& data);
- static bool ConvertMaximum(const Operation& operation, const Model& model, ConversionData& data);
-
static bool ConvertMean(const Operation& operation, const Model& model, ConversionData& data);
- static bool ConvertMinimum(const Operation& operation, const Model& model, ConversionData& data);
-
- static bool ConvertMul(const Operation& operation, const Model& model, ConversionData& data);
-
static bool ConvertPad(const Operation& operation, const Model& model, ConversionData& data);
static bool ConvertPadV2(const Operation& operation, const Model& model, ConversionData& data);
@@ -164,8 +159,6 @@ private:
static bool ConvertStridedSlice(const Operation& operation, const Model& model, ConversionData& data);
- static bool ConvertSub(const Operation& operation, const Model& model, ConversionData& data);
-
static bool ConvertTanH(const Operation& operation, const Model& model, ConversionData& data);
static bool ConvertTranspose(const Operation& operation, const Model& model, ConversionData& data);