From bab8fa9a11cf3bfef4b72fb757b81575b6fd75f0 Mon Sep 17 00:00:00 2001 From: Ryan OShea Date: Wed, 9 Mar 2022 10:29:02 +0000 Subject: 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 --- .../test/layerTests/Pooling3dTestImpl.hpp | 137 ++++++++++++++++----- 1 file changed, 108 insertions(+), 29 deletions(-) (limited to 'src/backends/backendsCommon/test/layerTests/Pooling3dTestImpl.hpp') diff --git a/src/backends/backendsCommon/test/layerTests/Pooling3dTestImpl.hpp b/src/backends/backendsCommon/test/layerTests/Pooling3dTestImpl.hpp index 8ad8111961..f17b6dfdb2 100644 --- a/src/backends/backendsCommon/test/layerTests/Pooling3dTestImpl.hpp +++ b/src/backends/backendsCommon/test/layerTests/Pooling3dTestImpl.hpp @@ -15,17 +15,20 @@ LayerTestResult SimpleMaxPooling3dSize2x2x2Stride1x1x1Test( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, - const armnn::ITensorHandleFactory& tensorHandleFactory); + const armnn::ITensorHandleFactory& tensorHandleFactory, + const armnn::DataLayout dataLayout); LayerTestResultSimpleMaxPooling3dSize2x2x2Stride1x1x1Uint8Test( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, - const armnn::ITensorHandleFactory& tensorHandleFactory); + const armnn::ITensorHandleFactory& tensorHandleFactory, + const armnn::DataLayout dataLayout); LayerTestResult SimpleMaxPooling3dSize2x2x2Stride1x1x1Int16Test( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, - const armnn::ITensorHandleFactory& tensorHandleFactory); + const armnn::ITensorHandleFactory& tensorHandleFactory, + const armnn::DataLayout dataLayout); LayerTestResult SimpleMaxPooling3dTest( armnn::IWorkloadFactory& workloadFactory, @@ -48,17 +51,20 @@ LayerTestResult SimpleMaxPooling3dInt16Test( LayerTestResult IgnorePaddingSimpleMaxPooling3dTest( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, - const armnn::ITensorHandleFactory& tensorHandleFactory); + const armnn::ITensorHandleFactory& tensorHandleFactory, + const armnn::DataLayout dataLayout); LayerTestResult IgnorePaddingSimpleMaxPooling3dUint8Test( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, - const armnn::ITensorHandleFactory& tensorHandleFactory); + const armnn::ITensorHandleFactory& tensorHandleFactory, + const armnn::DataLayout dataLayout); LayerTestResult IgnorePaddingSimpleMaxPooling3dInt16Test( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, - const armnn::ITensorHandleFactory& tensorHandleFactory); + const armnn::ITensorHandleFactory& tensorHandleFactory, + const armnn::DataLayout dataLayout); LayerTestResult SimpleAveragePooling3dTest( armnn::IWorkloadFactory& workloadFactory, @@ -81,32 +87,38 @@ LayerTestResult SimpleAveragePooling3dInt16Test( LayerTestResult LargeTensorsAveragePooling3dTest( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, - const armnn::ITensorHandleFactory& tensorHandleFactory); + const armnn::ITensorHandleFactory& tensorHandleFactory, + const armnn::DataLayout dataLayout); LayerTestResult LargeTensorsAveragePooling3dUint8Test( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, - const armnn::ITensorHandleFactory& tensorHandleFactory); + const armnn::ITensorHandleFactory& tensorHandleFactory, + const armnn::DataLayout dataLayout); LayerTestResult LargeTensorsAveragePooling3dInt16Test( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, - const armnn::ITensorHandleFactory& tensorHandleFactory); + const armnn::ITensorHandleFactory& tensorHandleFactory, + const armnn::DataLayout dataLayout); LayerTestResult IgnorePaddingSimpleAveragePooling3dTest( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, - const armnn::ITensorHandleFactory& tensorHandleFactory); + const armnn::ITensorHandleFactory& tensorHandleFactory, + const armnn::DataLayout dataLayout); LayerTestResult IgnorePaddingSimpleAveragePooling3dUint8Test( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, - const armnn::ITensorHandleFactory& tensorHandleFactory); + const armnn::ITensorHandleFactory& tensorHandleFactory, + const armnn::DataLayout dataLayout); LayerTestResult IgnorePaddingSimpleAveragePooling3dInt16Test( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, - const armnn::ITensorHandleFactory& tensorHandleFactory); + const armnn::ITensorHandleFactory& tensorHandleFactory, + const armnn::DataLayout dataLayout); LayerTestResult SimpleL2Pooling3dTest( armnn::IWorkloadFactory& workloadFactory, @@ -129,62 +141,128 @@ LayerTestResult SimpleL2Pooling3dInt16Test( LayerTestResult IgnorePaddingSimpleL2Pooling3dTest( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, - const armnn::ITensorHandleFactory& tensorHandleFactory); + const armnn::ITensorHandleFactory& tensorHandleFactory, + const armnn::DataLayout dataLayout); LayerTestResult IgnorePaddingSimpleL2Pooling3dUint8Test( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, - const armnn::ITensorHandleFactory& tensorHandleFactory); + const armnn::ITensorHandleFactory& tensorHandleFactory, + const armnn::DataLayout dataLayout); LayerTestResult IgnorePaddingSimpleL2Pooling3dInt16Test( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, - const armnn::ITensorHandleFactory& tensorHandleFactory); + const armnn::ITensorHandleFactory& tensorHandleFactory, + const armnn::DataLayout dataLayout); LayerTestResult AsymmetricNonSquareMaxPooling3dTest( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, - const armnn::ITensorHandleFactory& tensorHandleFactory); + const armnn::ITensorHandleFactory& tensorHandleFactory, + const armnn::DataLayout dataLayout); LayerTestResult AsymmetricNonSquareMaxPooling3dUint8Test( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, - const armnn::ITensorHandleFactory& tensorHandleFactory); + const armnn::ITensorHandleFactory& tensorHandleFactor, + const armnn::DataLayout dataLayout); LayerTestResult AsymmetricNonSquareMaxPooling3dInt16Test( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, - const armnn::ITensorHandleFactory& tensorHandleFactory); + const armnn::ITensorHandleFactory& tensorHandleFactory, + const armnn::DataLayout dataLayout); + +LayerTestResult AsymmetricNonSquareMaxPooling3dWithPaddingOnlyPoolTest( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, + const armnn::ITensorHandleFactory& tensorHandleFactory, + const armnn::DataLayout dataLayout); + +LayerTestResult AsymmetricNonSquareMaxPooling3dWithPaddingOnlyPoolUint8Test( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, + const armnn::ITensorHandleFactory& tensorHandleFactor, + const armnn::DataLayout dataLayout); + +LayerTestResult AsymmetricNonSquareMaxPooling3dWithPaddingOnlyPoolInt16Test( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, + const armnn::ITensorHandleFactory& tensorHandleFactory, + const armnn::DataLayout dataLayout); LayerTestResult AsymmetricNonSquareAveragePooling3dTest( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, - const armnn::ITensorHandleFactory& tensorHandleFactory); + const armnn::ITensorHandleFactory& tensorHandleFactory, + const armnn::DataLayout dataLayout); LayerTestResult AsymmetricNonSquareAveragePooling3dUint8Test( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, - const armnn::ITensorHandleFactory& tensorHandleFactory); + const armnn::ITensorHandleFactory& tensorHandleFactory, + const armnn::DataLayout dataLayout); LayerTestResult AsymmetricNonSquareAveragePooling3dInt16Test( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, - const armnn::ITensorHandleFactory& tensorHandleFactory); + const armnn::ITensorHandleFactory& tensorHandleFactory, + const armnn::DataLayout dataLayout); + +LayerTestResult AsymmetricNonSquareAveragePooling3dWithPaddingOnlyPoolTest( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, + const armnn::ITensorHandleFactory& tensorHandleFactory, + const armnn::DataLayout dataLayout); + +LayerTestResult AsymmetricNonSquareAveragePooling3dWithPaddingOnlyPoolUint8Test( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, + const armnn::ITensorHandleFactory& tensorHandleFactory, + const armnn::DataLayout dataLayout); + +LayerTestResult AsymmetricNonSquareAveragePooling3dWithPaddingOnlyPoolInt16Test( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, + const armnn::ITensorHandleFactory& tensorHandleFactory, + const armnn::DataLayout dataLayout); LayerTestResult AsymmetricNonSquareL2Pooling3dTest( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, - const armnn::ITensorHandleFactory& tensorHandleFactory); + const armnn::ITensorHandleFactory& tensorHandleFactory, + const armnn::DataLayout dataLayout); LayerTestResult AsymmetricNonSquareL2Pooling3dUint8Test( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, - const armnn::ITensorHandleFactory& tensorHandleFactory); + const armnn::ITensorHandleFactory& tensorHandleFactory, + const armnn::DataLayout dataLayout); LayerTestResult AsymmetricNonSquareL2Pooling3dInt16Test( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, - const armnn::ITensorHandleFactory& tensorHandleFactory); + const armnn::ITensorHandleFactory& tensorHandleFactory, + const armnn::DataLayout dataLayout); + +LayerTestResult AsymmetricNonSquareL2Pooling3dWithPaddingOnlyPoolTest( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, + const armnn::ITensorHandleFactory& tensorHandleFactory, + const armnn::DataLayout dataLayout); + +LayerTestResult AsymmetricNonSquareL2Pooling3dWithPaddingOnlyPoolUint8Test( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, + const armnn::ITensorHandleFactory& tensorHandleFactory, + const armnn::DataLayout dataLayout); + +LayerTestResult AsymmetricNonSquareL2Pooling3dWithPaddingOnlyPoolInt16Test( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, + const armnn::ITensorHandleFactory& tensorHandleFactory, + const armnn::DataLayout dataLayout); LayerTestResult ComparePooling3dTest( armnn::IWorkloadFactory& workloadFactory, @@ -192,7 +270,8 @@ LayerTestResult ComparePooling3dTest( armnn::IWorkloadFactory& refWorkloadFactory, const armnn::ITensorHandleFactory& tensorHandleFactory, const armnn::ITensorHandleFactory& refTensorHandleFactory, - armnn::PoolingAlgorithm poolingType); + armnn::PoolingAlgorithm poolingType, + const armnn::DataLayout dataLayout); LayerTestResult ComparePooling3dUint8Test( armnn::IWorkloadFactory& workloadFactory, @@ -200,7 +279,8 @@ LayerTestResult ComparePooling3dUint8Test( armnn::IWorkloadFactory& refWorkloadFactory, const armnn::ITensorHandleFactory& tensorHandleFactory, const armnn::ITensorHandleFactory& refTensorHandleFactory, - armnn::PoolingAlgorithm poolingType); + armnn::PoolingAlgorithm poolingType, + const armnn::DataLayout dataLayout); LayerTestResult ComparePooling3dInt16Test( armnn::IWorkloadFactory& workloadFactory, @@ -208,6 +288,5 @@ LayerTestResult ComparePooling3dInt16Test( armnn::IWorkloadFactory& refWorkloadFactory, const armnn::ITensorHandleFactory& tensorHandleFactory, const armnn::ITensorHandleFactory& refTensorHandleFactory, - armnn::PoolingAlgorithm poolingType); - - + armnn::PoolingAlgorithm poolingType, + const armnn::DataLayout dataLayout); -- cgit v1.2.1