From 42666a17df1a36bb4f6f24866be73da0e55de020 Mon Sep 17 00:00:00 2001 From: Matteo Martincigh Date: Wed, 29 May 2019 08:53:41 +0100 Subject: IVGCVSW-3171 Extend the Strided Slice Ref workload to support the QSymm16 * Added support for QSymm16 in the Strided Slice workload * Added unit tests Change-Id: I84485bc2fd5ad2b4edb49c644b644878e0e5aded Signed-off-by: Matteo Martincigh --- src/backends/backendsCommon/WorkloadData.cpp | 3 +- src/backends/backendsCommon/test/LayerTests.cpp | 63 +++++++++++++++++++++++++ src/backends/backendsCommon/test/LayerTests.hpp | 39 ++++++++++++++- src/backends/reference/test/RefLayerTests.cpp | 10 ++++ 4 files changed, 112 insertions(+), 3 deletions(-) diff --git a/src/backends/backendsCommon/WorkloadData.cpp b/src/backends/backendsCommon/WorkloadData.cpp index c4f1b24d1e..f03716b209 100644 --- a/src/backends/backendsCommon/WorkloadData.cpp +++ b/src/backends/backendsCommon/WorkloadData.cpp @@ -1256,7 +1256,8 @@ void StridedSliceQueueDescriptor::Validate(const WorkloadInfo& workloadInfo) con { DataType::Float16, DataType::Float32, - DataType::QuantisedAsymm8 + DataType::QuantisedAsymm8, + DataType::QuantisedSymm16 }; ValidateDataTypes(input, supportedTypes, "StridedSliceQueueDescriptor"); diff --git a/src/backends/backendsCommon/test/LayerTests.cpp b/src/backends/backendsCommon/test/LayerTests.cpp index 34adf90379..a51dc79e1b 100644 --- a/src/backends/backendsCommon/test/LayerTests.cpp +++ b/src/backends/backendsCommon/test/LayerTests.cpp @@ -9790,6 +9790,69 @@ LayerTestResult StridedSlice2DReverseUint8Test( return StridedSlice2DReverseTest(workloadFactory, memoryManager); } +LayerTestResult StridedSlice4DInt16Test( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager) +{ + return StridedSlice4DTest(workloadFactory, memoryManager); +} + +LayerTestResult StridedSlice4DReverseInt16Test( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager) +{ + return StridedSlice4DReverseTest(workloadFactory, memoryManager); +} + +LayerTestResult StridedSliceSimpleStrideInt16Test( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager) +{ + return StridedSliceSimpleStrideTest(workloadFactory, memoryManager); +} + +LayerTestResult StridedSliceSimpleRangeMaskInt16Test( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager) +{ + return StridedSliceSimpleRangeMaskTest(workloadFactory, memoryManager); +} + +LayerTestResult StridedSliceShrinkAxisMaskInt16Test( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager) +{ + return StridedSliceShrinkAxisMaskTest(workloadFactory, memoryManager); +} + +LayerTestResult StridedSlice3DInt16Test( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager) +{ + return StridedSlice3DTest(workloadFactory, memoryManager); +} + +LayerTestResult StridedSlice3DReverseInt16Test( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager) +{ + return StridedSlice3DReverseTest(workloadFactory, memoryManager); +} + +LayerTestResult StridedSlice2DInt16Test( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager) +{ + return StridedSlice2DTest(workloadFactory, memoryManager); +} + +LayerTestResult StridedSlice2DReverseInt16Test( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager) +{ + return StridedSlice2DReverseTest(workloadFactory, memoryManager); +} + LayerTestResult Debug4DFloat32Test( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager) diff --git a/src/backends/backendsCommon/test/LayerTests.hpp b/src/backends/backendsCommon/test/LayerTests.hpp index 7607bf0720..a66a64418c 100644 --- a/src/backends/backendsCommon/test/LayerTests.hpp +++ b/src/backends/backendsCommon/test/LayerTests.hpp @@ -1534,6 +1534,42 @@ LayerTestResult StridedSlice2DReverseUint8Test( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); +LayerTestResult StridedSlice4DInt16Test( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); + +LayerTestResult StridedSlice4DReverseInt16Test( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); + +LayerTestResult StridedSliceSimpleStrideInt16Test( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); + +LayerTestResult StridedSliceSimpleRangeMaskInt16Test( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); + +LayerTestResult StridedSliceShrinkAxisMaskInt16Test( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); + +LayerTestResult StridedSlice3DInt16Test( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); + +LayerTestResult StridedSlice3DReverseInt16Test( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); + +LayerTestResult StridedSlice2DInt16Test( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); + +LayerTestResult StridedSlice2DReverseInt16Test( + armnn::IWorkloadFactory& workloadFactory, + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); + LayerTestResult Debug4DFloat32Test( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager); @@ -1838,7 +1874,6 @@ LayerTestResult FullyConnectedTest( return result; } - template LayerTestResult SimpleReshapeTest( armnn::IWorkloadFactory& workloadFactory, @@ -1889,4 +1924,4 @@ LayerTestResult SimpleReshapeTest( return SimpleReshapeTestImpl( workloadFactory, memoryManager, inputTensorInfo, outputTensorInfo, input, outputExpected); -} \ No newline at end of file +} diff --git a/src/backends/reference/test/RefLayerTests.cpp b/src/backends/reference/test/RefLayerTests.cpp index 690a78c21c..d3a597586b 100644 --- a/src/backends/reference/test/RefLayerTests.cpp +++ b/src/backends/reference/test/RefLayerTests.cpp @@ -571,6 +571,16 @@ ARMNN_AUTO_TEST_CASE(StridedSlice3DReverseUint8, StridedSlice3DReverseUint8Test) ARMNN_AUTO_TEST_CASE(StridedSlice2DUint8, StridedSlice2DUint8Test) ARMNN_AUTO_TEST_CASE(StridedSlice2DReverseUint8, StridedSlice2DReverseUint8Test) +ARMNN_AUTO_TEST_CASE(StridedSlice4DInt16, StridedSlice4DInt16Test) +ARMNN_AUTO_TEST_CASE(StridedSlice4DReverseInt16, StridedSlice4DReverseInt16Test) +ARMNN_AUTO_TEST_CASE(StridedSliceSimpleStrideInt16, StridedSliceSimpleStrideInt16Test) +ARMNN_AUTO_TEST_CASE(StridedSliceSimpleRangeMaskInt16, StridedSliceSimpleRangeMaskInt16Test) +ARMNN_AUTO_TEST_CASE(StridedSliceShrinkAxisMaskInt16, StridedSliceShrinkAxisMaskInt16Test) +ARMNN_AUTO_TEST_CASE(StridedSlice3DInt16, StridedSlice3DInt16Test) +ARMNN_AUTO_TEST_CASE(StridedSlice3DReverseInt16, StridedSlice3DReverseInt16Test) +ARMNN_AUTO_TEST_CASE(StridedSlice2DInt16, StridedSlice2DInt16Test) +ARMNN_AUTO_TEST_CASE(StridedSlice2DReverseInt16, StridedSlice2DReverseInt16Test) + // Debug ARMNN_AUTO_TEST_CASE(Debug4DFloat32, Debug4DFloat32Test) ARMNN_AUTO_TEST_CASE(Debug3DFloat32, Debug3DFloat32Test) -- cgit v1.2.1