From 19e79420fa9f136352cce56b5650b47aa2e96de3 Mon Sep 17 00:00:00 2001 From: Ryan OShea Date: Wed, 4 May 2022 00:38:03 +0100 Subject: IVGCVSW-6175 Add Pooling3d to Neon * Add IsSupported for Pooling3d * Add CreateWorkload case for Pooling3d * Create new NeonPooling3dWorkload header and source files * Add Pooling3d workload to NeonWorkloads.hpp * Add float32 tests for Pooling3d workload * Add Uint8 tests for Cl and NE pooling3d Signed-off-by: Ryan OShea Change-Id: Ic992e1233d1eb8db52df2c8446183df1c907bc4d --- src/backends/neon/NeonLayerSupport.cpp | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) (limited to 'src/backends/neon/NeonLayerSupport.cpp') diff --git a/src/backends/neon/NeonLayerSupport.cpp b/src/backends/neon/NeonLayerSupport.cpp index d50b25377d..cf541f491b 100644 --- a/src/backends/neon/NeonLayerSupport.cpp +++ b/src/backends/neon/NeonLayerSupport.cpp @@ -58,6 +58,7 @@ #include "workloads/NeonPadWorkload.hpp" #include "workloads/NeonPermuteWorkload.hpp" #include "workloads/NeonPooling2dWorkload.hpp" +#include "workloads/NeonPooling3dWorkload.hpp" #include "workloads/NeonPreluWorkload.hpp" #include "workloads/NeonQLstmWorkload.hpp" #include "workloads/NeonQuantizeWorkload.hpp" @@ -435,6 +436,11 @@ bool NeonLayerSupport::IsLayerSupported(const LayerType& type, infos[1], *(PolymorphicDowncast(&descriptor)), reasonIfUnsupported); + case LayerType::Pooling3d: + return IsPooling3dSupported(infos[0], + infos[1], + *(PolymorphicDowncast(&descriptor)), + reasonIfUnsupported); case LayerType::Prelu: return IsPreluSupported(infos[0], infos[1], infos[2], reasonIfUnsupported); case LayerType::QLstm: @@ -578,7 +584,7 @@ bool NeonLayerSupport::IsLayerSupported(const LayerType& type, default: // layers not supported in neon by default: // debug, fakequantization, precompiled, - // standin, switch, pooling3d + // standin, switch return false; } } @@ -1213,6 +1219,14 @@ bool NeonLayerSupport::IsPooling2dSupported(const TensorInfo& input, FORWARD_WORKLOAD_VALIDATE_FUNC(NeonPooling2dWorkloadValidate, reasonIfUnsupported, input, output, descriptor); } +bool NeonLayerSupport::IsPooling3dSupported(const TensorInfo& input, + const TensorInfo& output, + const Pooling3dDescriptor& descriptor, + Optional reasonIfUnsupported) const +{ + FORWARD_WORKLOAD_VALIDATE_FUNC(NeonPooling3dWorkloadValidate, reasonIfUnsupported, input, output, descriptor); +} + bool NeonLayerSupport::IsPreluSupported(const armnn::TensorInfo &input, const armnn::TensorInfo &alpha, const armnn::TensorInfo &output, -- cgit v1.2.1