aboutsummaryrefslogtreecommitdiff
path: root/src/backends/neon/workloads/NeonNormalizationFloatWorkload.cpp
diff options
context:
space:
mode:
authorAron Virginas-Tar <Aron.Virginas-Tar@arm.com>2018-10-15 15:00:13 +0100
committerMatthew Bentham <matthew.bentham@arm.com>2018-10-22 16:57:54 +0100
commitfc82431755edb950b46aaeda5725635c1fe7d02d (patch)
tree0acadb71dbd2ff1213e9ab2ebd9fa4cc696f1b73 /src/backends/neon/workloads/NeonNormalizationFloatWorkload.cpp
parentbcf9f16605e8ce084a0c188abd16ee2bd56e59f4 (diff)
downloadarmnn-fc82431755edb950b46aaeda5725635c1fe7d02d.tar.gz
IVGCVSW-2003: Get rid of IsLayerSupportedNeon functions in favor of ILayerSupport interface
Change-Id: I03985ff678acf9393680340638a2e1f425b9966f
Diffstat (limited to 'src/backends/neon/workloads/NeonNormalizationFloatWorkload.cpp')
-rw-r--r--src/backends/neon/workloads/NeonNormalizationFloatWorkload.cpp30
1 files changed, 29 insertions, 1 deletions
diff --git a/src/backends/neon/workloads/NeonNormalizationFloatWorkload.cpp b/src/backends/neon/workloads/NeonNormalizationFloatWorkload.cpp
index 0deff79dac..1894048788 100644
--- a/src/backends/neon/workloads/NeonNormalizationFloatWorkload.cpp
+++ b/src/backends/neon/workloads/NeonNormalizationFloatWorkload.cpp
@@ -13,6 +13,34 @@ using namespace armnn::armcomputetensorutils;
namespace armnn
{
+namespace
+{
+
+bool IsNeonNormalizationDescriptorSupported(const NormalizationDescriptor& parameters,
+ Optional<std::string&> reasonIfUnsupported)
+{
+ if (parameters.m_NormMethodType != NormalizationAlgorithmMethod::LocalBrightness)
+ {
+ if (reasonIfUnsupported)
+ {
+ reasonIfUnsupported.value() = "Unsupported normalisation method type, only LocalBrightness is supported";
+ }
+ return false;
+ }
+ if (parameters.m_NormSize % 2 == 0)
+ {
+ if (reasonIfUnsupported)
+ {
+ reasonIfUnsupported.value() = "Normalization size must be an odd number.";
+ }
+ return false;
+ }
+
+ return true;
+}
+
+} // anonymous namespace
+
arm_compute::Status NeonNormalizationWorkloadValidate(const TensorInfo& input,
const TensorInfo& output,
const NormalizationDescriptor& descriptor)
@@ -33,7 +61,7 @@ NeonNormalizationFloatWorkload::NeonNormalizationFloatWorkload(const Normalizati
{
m_Data.ValidateInputsOutputs("NeonNormalizationFloatWorkload", 1, 1);
std::string reasonIfUnsupported;
- if (!IsNeonNormalizationDescParamsSupported(Optional<std::string&>(reasonIfUnsupported), m_Data.m_Parameters))
+ if (!IsNeonNormalizationDescriptorSupported(m_Data.m_Parameters, Optional<std::string&>(reasonIfUnsupported)))
{
throw UnimplementedException(reasonIfUnsupported);
}