From 7b885b3cce70154596b1994b013ea91527117c26 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tam=C3=A1s=20Ny=C3=ADri?= Date: Tue, 26 Oct 2021 14:47:57 +0100 Subject: IVGCVSW-6509 Front End + Reference Workload implementation Subtask of story: IVGCVSW-6164 Add a Pooling3d FrontEnd and Ref Implementation * Add front end * Add reference workload * Add corresponding unit tests Change-Id: Icce4146dd0a06a1da46a2def00a82d343e171750 Signed-off-by: Tamas Nyiri --- Android.mk | 1 + CMakeLists.txt | 2 + docs/02_operator_list.dox | 39 +- include/armnn/BackendHelper.hpp | 5 + include/armnn/Descriptors.hpp | 76 ++ include/armnn/DescriptorsFwd.hpp | 1 + include/armnn/ILayerVisitor.hpp | 8 + include/armnn/INetwork.hpp | 9 +- include/armnn/Types.hpp | 1 + include/armnn/backends/ILayerSupport.hpp | 5 + include/armnnUtils/TensorUtils.hpp | 8 + src/armnn/BackendHelper.cpp | 8 + src/armnn/LayersFwd.hpp | 2 + src/armnn/Network.cpp | 12 + src/armnn/Network.hpp | 3 + src/armnn/layers/Pooling3dLayer.cpp | 131 ++ src/armnn/layers/Pooling3dLayer.hpp | 52 + src/armnn/test/InferOutputTests.cpp | 3 + src/armnn/test/InferOutputTests.hpp | 34 + src/armnnUtils/TensorUtils.cpp | 21 + src/backends/backendsCommon/LayerSupportBase.cpp | 8 + src/backends/backendsCommon/LayerSupportBase.hpp | 5 + src/backends/backendsCommon/WorkloadData.cpp | 28 + src/backends/backendsCommon/WorkloadData.hpp | 7 + src/backends/backendsCommon/WorkloadFactory.cpp | 17 + src/backends/backendsCommon/WorkloadFactory.hpp | 3 + .../backendsCommon/WorkloadFactoryBase.hpp | 4 + src/backends/backendsCommon/common.mk | 1 + src/backends/backendsCommon/test/CMakeLists.txt | 2 + .../test/IsLayerSupportedTestImpl.hpp | 2 + src/backends/backendsCommon/test/LayerTests.hpp | 1 + .../backendsCommon/test/WorkloadDataValidation.cpp | 21 + .../test/layerTests/Pooling3dTestImpl.cpp | 1405 ++++++++++++++++++++ .../test/layerTests/Pooling3dTestImpl.hpp | 213 +++ src/backends/reference/RefLayerSupport.cpp | 32 + src/backends/reference/RefLayerSupport.hpp | 5 + src/backends/reference/RefWorkloadFactory.cpp | 6 + src/backends/reference/RefWorkloadFactory.hpp | 3 + src/backends/reference/backend.mk | 2 + src/backends/reference/test/RefLayerTests.cpp | 64 +- src/backends/reference/workloads/CMakeLists.txt | 4 + src/backends/reference/workloads/Pooling3d.cpp | 328 +++++ src/backends/reference/workloads/Pooling3d.hpp | 21 + .../reference/workloads/RefPooling3dWorkload.cpp | 42 + .../reference/workloads/RefPooling3dWorkload.hpp | 26 + src/backends/reference/workloads/RefWorkloads.hpp | 2 + 46 files changed, 2670 insertions(+), 3 deletions(-) create mode 100644 src/armnn/layers/Pooling3dLayer.cpp create mode 100644 src/armnn/layers/Pooling3dLayer.hpp create mode 100644 src/backends/backendsCommon/test/layerTests/Pooling3dTestImpl.cpp create mode 100644 src/backends/backendsCommon/test/layerTests/Pooling3dTestImpl.hpp create mode 100644 src/backends/reference/workloads/Pooling3d.cpp create mode 100644 src/backends/reference/workloads/Pooling3d.hpp create mode 100644 src/backends/reference/workloads/RefPooling3dWorkload.cpp create mode 100644 src/backends/reference/workloads/RefPooling3dWorkload.hpp diff --git a/Android.mk b/Android.mk index aa82e49e38..e39a0e8071 100644 --- a/Android.mk +++ b/Android.mk @@ -205,6 +205,7 @@ LOCAL_SRC_FILES := \ src/armnn/layers/PadLayer.cpp \ src/armnn/layers/PermuteLayer.cpp \ src/armnn/layers/Pooling2dLayer.cpp \ + src/armnn/layers/Pooling3dLayer.cpp \ src/armnn/layers/PreCompiledLayer.cpp \ src/armnn/layers/PreluLayer.cpp \ src/armnn/layers/QLstmLayer.cpp \ diff --git a/CMakeLists.txt b/CMakeLists.txt index 3d6f663b42..3653740c00 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -305,6 +305,8 @@ list(APPEND armnn_sources src/armnn/layers/PermuteLayer.cpp src/armnn/layers/Pooling2dLayer.hpp src/armnn/layers/Pooling2dLayer.cpp + src/armnn/layers/Pooling3dLayer.hpp + src/armnn/layers/Pooling3dLayer.cpp src/armnn/layers/QuantizeLayer.cpp src/armnn/layers/QuantizeLayer.hpp src/armnn/layers/QLstmLayer.hpp diff --git a/docs/02_operator_list.dox b/docs/02_operator_list.dox index 90aee130bf..e1eec58e4e 100644 --- a/docs/02_operator_list.dox +++ b/docs/02_operator_list.dox @@ -2242,7 +2242,7 @@ where N = batches, C = channels, H = height, W = width Pooling2dLayer - Layer to perform pooling with the specified pooling operation. + Layer to perform 2D pooling with the specified pooling operation.