From d2aa85ee2a0f574bcba50a376721f15c7e99308d Mon Sep 17 00:00:00 2001 From: James Conroy Date: Mon, 1 Jul 2019 17:12:40 +0100 Subject: IVGCVSW-3353 Add CL support and tests for SpaceToDepth * Added CL backend support for SpaceToDepth. * Enabled unit tests for SpaceToDepth on CL. * Renamed unit tests to make them type-agnostic. * Added QSymm16/S16 support to ClTensorHandle. Signed-off-by: James Conroy Change-Id: I417d82946142ed619c447428bf0b0c4a2116c004 --- src/backends/backendsCommon/WorkloadData.cpp | 3 +- src/backends/backendsCommon/test/LayerTests.cpp | 50 +++++++++++++++++++--- src/backends/backendsCommon/test/LayerTests.hpp | 20 ++++++++- .../backendsCommon/test/SpaceToDepthTestImpl.hpp | 4 +- 4 files changed, 66 insertions(+), 11 deletions(-) (limited to 'src/backends/backendsCommon') diff --git a/src/backends/backendsCommon/WorkloadData.cpp b/src/backends/backendsCommon/WorkloadData.cpp index 3766f5f7ca..324c1debc0 100644 --- a/src/backends/backendsCommon/WorkloadData.cpp +++ b/src/backends/backendsCommon/WorkloadData.cpp @@ -1206,7 +1206,8 @@ void SpaceToDepthQueueDescriptor::Validate(const WorkloadInfo& workloadInfo) con { DataType::Float32, DataType::Float16, - DataType::QuantisedAsymm8 + DataType::QuantisedAsymm8, + DataType::QuantisedSymm16 }; ValidateDataTypes(workloadInfo.m_InputTensorInfos[0], diff --git a/src/backends/backendsCommon/test/LayerTests.cpp b/src/backends/backendsCommon/test/LayerTests.cpp index 56c0ab6b12..5c41d3aac3 100644 --- a/src/backends/backendsCommon/test/LayerTests.cpp +++ b/src/backends/backendsCommon/test/LayerTests.cpp @@ -9421,7 +9421,7 @@ LayerTestResult SpaceToDepthNHWCAsymmQ8Test( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager) { - return SpaceToDepthSimpleTest( + return SpaceToDepthSimpleTest1( workloadFactory, memoryManager); } @@ -9430,26 +9430,64 @@ LayerTestResult SpaceToDepthNCHWAsymmQ8Test( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager) { - return SpaceToDepthSimpleTest( + return SpaceToDepthSimpleTest1( workloadFactory, memoryManager, armnn::DataLayout::NCHW); } -LayerTestResult SpaceToDepthNHWCFloat32Test( +LayerTestResult SpaceToDepthNHWCFloat32Test1( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager) { - return SpaceToDepthFloatTest( + return SpaceToDepthSimpleTest1( workloadFactory, memoryManager); } -LayerTestResult SpaceToDepthNCHWFloat32Test( +LayerTestResult SpaceToDepthNCHWFloat32Test1( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager) { - return SpaceToDepthFloatTest( + return SpaceToDepthSimpleTest1( + workloadFactory, + memoryManager, + armnn::DataLayout::NCHW); +} + +LayerTestResult SpaceToDepthNHWCFloat32Test2( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager) +{ + return SpaceToDepthSimpleTest2( + workloadFactory, + memoryManager); +} + +LayerTestResult SpaceToDepthNCHWFloat32Test2( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager) +{ + return SpaceToDepthSimpleTest2( + workloadFactory, + memoryManager, + armnn::DataLayout::NCHW); +} + +LayerTestResult SpaceToDepthNHWCQSymm16Test( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager) +{ + return SpaceToDepthSimpleTest2( + workloadFactory, + memoryManager); +} + +LayerTestResult SpaceToDepthNCHWQSymm16Test( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager) +{ + return SpaceToDepthSimpleTest2( workloadFactory, memoryManager, armnn::DataLayout::NCHW); diff --git a/src/backends/backendsCommon/test/LayerTests.hpp b/src/backends/backendsCommon/test/LayerTests.hpp index 259ad01c62..c3ea619eaa 100644 --- a/src/backends/backendsCommon/test/LayerTests.hpp +++ b/src/backends/backendsCommon/test/LayerTests.hpp @@ -2004,11 +2004,27 @@ LayerTestResult SpaceToDepthNHWCAsymmQ8Test( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); -LayerTestResult SpaceToDepthNHWCFloat32Test( +LayerTestResult SpaceToDepthNHWCFloat32Test1( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); -LayerTestResult SpaceToDepthNCHWFloat32Test( +LayerTestResult SpaceToDepthNCHWFloat32Test1( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); + +LayerTestResult SpaceToDepthNHWCFloat32Test2( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); + +LayerTestResult SpaceToDepthNCHWFloat32Test2( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); + +LayerTestResult SpaceToDepthNHWCQSymm16Test( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); + +LayerTestResult SpaceToDepthNCHWQSymm16Test( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); diff --git a/src/backends/backendsCommon/test/SpaceToDepthTestImpl.hpp b/src/backends/backendsCommon/test/SpaceToDepthTestImpl.hpp index 99926cd026..af3f5d2618 100644 --- a/src/backends/backendsCommon/test/SpaceToDepthTestImpl.hpp +++ b/src/backends/backendsCommon/test/SpaceToDepthTestImpl.hpp @@ -81,7 +81,7 @@ LayerTestResult SpaceToDepthTestImpl( } template> -LayerTestResult SpaceToDepthSimpleTest( +LayerTestResult SpaceToDepthSimpleTest1( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, armnn::DataLayout dataLayout = armnn::DataLayout::NHWC) @@ -114,7 +114,7 @@ LayerTestResult SpaceToDepthSimpleTest( } template> -LayerTestResult SpaceToDepthFloatTest( +LayerTestResult SpaceToDepthSimpleTest2( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, armnn::DataLayout dataLayout = armnn::DataLayout::NHWC) -- cgit v1.2.1