From 1939df5355ebc3994967e9d1cb2c9440a0d3eced Mon Sep 17 00:00:00 2001 From: Francis Murtagh Date: Wed, 13 Nov 2019 15:21:09 +0000 Subject: IVGCVSW-4128 Add Signed32 to supported input types for Ref ArgMinMax * Enabled RefLayerTests for Signed32 Signed-off-by: Francis Murtagh Change-Id: Idbe6fb7607c7e44a8df560b55f28c64a4c4286cd --- src/backends/backendsCommon/WorkloadData.cpp | 3 ++- .../test/layerTests/ArgMinMaxTestImpl.cpp | 30 ++++++++++++++++++++++ src/backends/reference/RefLayerSupport.cpp | 5 ++-- src/backends/reference/test/RefLayerTests.cpp | 7 +++++ 4 files changed, 42 insertions(+), 3 deletions(-) diff --git a/src/backends/backendsCommon/WorkloadData.cpp b/src/backends/backendsCommon/WorkloadData.cpp index 0a2b27afbf..443dc8eae3 100644 --- a/src/backends/backendsCommon/WorkloadData.cpp +++ b/src/backends/backendsCommon/WorkloadData.cpp @@ -610,7 +610,8 @@ void ArgMinMaxQueueDescriptor::Validate(const WorkloadInfo& workloadInfo) const DataType::Float16, DataType::Float32, DataType::QuantisedAsymm8, - DataType::QuantisedSymm16 + DataType::QuantisedSymm16, + DataType::Signed32 }; ValidateDataTypes(inputTensorInfo, supportedInputTypes, descriptorName); diff --git a/src/backends/backendsCommon/test/layerTests/ArgMinMaxTestImpl.cpp b/src/backends/backendsCommon/test/layerTests/ArgMinMaxTestImpl.cpp index be7ef4e32e..4475fb7abf 100644 --- a/src/backends/backendsCommon/test/layerTests/ArgMinMaxTestImpl.cpp +++ b/src/backends/backendsCommon/test/layerTests/ArgMinMaxTestImpl.cpp @@ -260,6 +260,11 @@ ArgMaxSimpleTest( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); +template LayerTestResult +ArgMaxSimpleTest( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); + template LayerTestResult ArgMinSimpleTest( armnn::IWorkloadFactory& workloadFactory, @@ -275,6 +280,11 @@ ArgMinSimpleTest( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); +template LayerTestResult +ArgMinSimpleTest( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); + template LayerTestResult ArgMinChannelTest( armnn::IWorkloadFactory& workloadFactory, @@ -290,6 +300,11 @@ ArgMinChannelTest( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); +template LayerTestResult +ArgMinChannelTest( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); + template LayerTestResult ArgMaxChannelTest( armnn::IWorkloadFactory& workloadFactory, @@ -305,12 +320,27 @@ ArgMaxChannelTest( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); +template LayerTestResult +ArgMaxChannelTest( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); + template LayerTestResult ArgMaxHeightTest( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); +template LayerTestResult +ArgMaxHeightTest( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); + template LayerTestResult ArgMinWidthTest( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); + +template LayerTestResult +ArgMinWidthTest( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); diff --git a/src/backends/reference/RefLayerSupport.cpp b/src/backends/reference/RefLayerSupport.cpp index 3507162de8..ef0cc8c363 100644 --- a/src/backends/reference/RefLayerSupport.cpp +++ b/src/backends/reference/RefLayerSupport.cpp @@ -198,11 +198,12 @@ bool RefLayerSupport::IsArgMinMaxSupported(const armnn::TensorInfo &input, const { ignore_unused(descriptor); - std::array supportedTypes = + std::array supportedTypes = { DataType::Float32, DataType::QuantisedAsymm8, - DataType::QuantisedSymm16 + DataType::QuantisedSymm16, + DataType::Signed32 }; bool supported = true; diff --git a/src/backends/reference/test/RefLayerTests.cpp b/src/backends/reference/test/RefLayerTests.cpp index c5986e0b12..a397e935c1 100644 --- a/src/backends/reference/test/RefLayerTests.cpp +++ b/src/backends/reference/test/RefLayerTests.cpp @@ -1116,6 +1116,13 @@ ARMNN_AUTO_TEST_CASE(ArgMaxChannelFloat32, ArgMaxChannelTest) ARMNN_AUTO_TEST_CASE(ArgMaxHeightFloat32, ArgMaxHeightTest) ARMNN_AUTO_TEST_CASE(ArgMinWidthFloat32, ArgMinWidthTest) +ARMNN_AUTO_TEST_CASE(ArgMaxSigned32, ArgMaxSimpleTest) +ARMNN_AUTO_TEST_CASE(ArgMinSigned32, ArgMinSimpleTest) +ARMNN_AUTO_TEST_CASE(ArgMinChannelSigned32, ArgMinChannelTest) +ARMNN_AUTO_TEST_CASE(ArgMaxChannelSigned32, ArgMaxChannelTest) +ARMNN_AUTO_TEST_CASE(ArgMaxHeightSigned32, ArgMaxHeightTest) +ARMNN_AUTO_TEST_CASE(ArgMinWidthSigned32, ArgMinWidthTest) + ARMNN_AUTO_TEST_CASE(ArgMaxSimpleQuantisedAsymm8, ArgMaxSimpleTest) ARMNN_AUTO_TEST_CASE(ArgMinSimpleQuantisedAsymm8, ArgMinSimpleTest) ARMNN_AUTO_TEST_CASE(ArgMinChannelQuantisedAsymm8, ArgMinChannelTest) -- cgit v1.2.1