diff options
author | Ryan OShea <ryan.oshea3@arm.com> | 2022-03-09 10:29:02 +0000 |
---|---|---|
committer | KeithARM <keith.davis@arm.com> | 2022-04-13 11:14:10 +0000 |
commit | bab8fa9a11cf3bfef4b72fb757b81575b6fd75f0 (patch) | |
tree | ddec7127c8683fb38dd595d8578c94e0479af7fe /src/backends/cl/ClLayerSupport.cpp | |
parent | b8bf004911d635043e586198fa85e3f2a07542eb (diff) | |
download | armnn-bab8fa9a11cf3bfef4b72fb757b81575b6fd75f0.tar.gz |
IVGCVSW-6174 Add Cl Pooling3d Workload
* Add IsSupported for Pooling3d
* Add CreateWorkload case for Pooling3d
* Create new ClPooling3dWorkload header and source files
* Add Pooling3d workload to ClWorkloads.hpp
* Add tests for Pooling3d workload
* Add Pooling3d build function to ArmComputeTensorUtils
Change-Id: Ia270b0fe809a171ed73af14376de8708b346d500
Signed-off-by: Ryan OShea <ryan.oshea3@arm.com>
Diffstat (limited to 'src/backends/cl/ClLayerSupport.cpp')
-rw-r--r-- | src/backends/cl/ClLayerSupport.cpp | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/backends/cl/ClLayerSupport.cpp b/src/backends/cl/ClLayerSupport.cpp index e52f578bc0..4dcaca9576 100644 --- a/src/backends/cl/ClLayerSupport.cpp +++ b/src/backends/cl/ClLayerSupport.cpp @@ -59,6 +59,7 @@ #include "workloads/ClPadWorkload.hpp" #include "workloads/ClPermuteWorkload.hpp" #include "workloads/ClPooling2dWorkload.hpp" +#include "workloads/ClPooling3dWorkload.hpp" #include "workloads/ClPreluWorkload.hpp" #include "workloads/ClQLstmWorkload.hpp" #include "workloads/ClQuantizedLstmWorkload.hpp" @@ -449,6 +450,11 @@ bool ClLayerSupport::IsLayerSupported(const LayerType& type, infos[1], *(PolymorphicDowncast<const Pooling2dDescriptor*>(&descriptor)), reasonIfUnsupported); + case LayerType::Pooling3d: + return IsPooling3dSupported(infos[0], + infos[1], + *(PolymorphicDowncast<const Pooling3dDescriptor*>(&descriptor)), + reasonIfUnsupported); case LayerType::Prelu: return IsPreluSupported(infos[0], infos[1], infos[2], reasonIfUnsupported); case LayerType::QLstm: @@ -1194,6 +1200,14 @@ bool ClLayerSupport::IsPooling2dSupported(const TensorInfo& input, FORWARD_WORKLOAD_VALIDATE_FUNC(ClPooling2dWorkloadValidate, reasonIfUnsupported, input, output, descriptor); } +bool ClLayerSupport::IsPooling3dSupported(const TensorInfo& input, + const TensorInfo& output, + const Pooling3dDescriptor& descriptor, + Optional<std::string&> reasonIfUnsupported) const +{ + FORWARD_WORKLOAD_VALIDATE_FUNC(ClPooling3dWorkloadValidate, reasonIfUnsupported, input, output, descriptor); +} + bool ClLayerSupport::IsPreluSupported(const armnn::TensorInfo &input, const armnn::TensorInfo &alpha, const armnn::TensorInfo &output, |