From b40d710508aede83fd1cbc17b4890c111fe0b297 Mon Sep 17 00:00:00 2001 From: James Conroy Date: Tue, 4 Jun 2019 12:32:09 +0100 Subject: IVGCVSW-3179 Extend floor workload to support QSymm16 * Added support for QSymm16 in Floor workload * Added unit test for QSymm16 Floor Signed-off-by: James Conroy Change-Id: I6d36a07b3cfff212056125232f7842ca04bf4947 --- src/backends/backendsCommon/WorkloadData.cpp | 3 ++- src/backends/backendsCommon/test/LayerTests.hpp | 7 +++++-- src/backends/reference/RefLayerSupport.cpp | 5 +++-- src/backends/reference/test/RefLayerTests.cpp | 1 + 4 files changed, 11 insertions(+), 5 deletions(-) diff --git a/src/backends/backendsCommon/WorkloadData.cpp b/src/backends/backendsCommon/WorkloadData.cpp index 9cc8ba07a8..6d17f3e042 100644 --- a/src/backends/backendsCommon/WorkloadData.cpp +++ b/src/backends/backendsCommon/WorkloadData.cpp @@ -1031,7 +1031,8 @@ void FloorQueueDescriptor::Validate(const WorkloadInfo& workloadInfo) const std::vector supportedTypes = { - DataType::Float32 + DataType::Float32, + DataType::QuantisedSymm16 }; ValidateDataTypes(workloadInfo.m_InputTensorInfos[0], supportedTypes, floorQueueDescString); diff --git a/src/backends/backendsCommon/test/LayerTests.hpp b/src/backends/backendsCommon/test/LayerTests.hpp index d75a10aedd..df79e46dee 100644 --- a/src/backends/backendsCommon/test/LayerTests.hpp +++ b/src/backends/backendsCommon/test/LayerTests.hpp @@ -1963,8 +1963,11 @@ LayerTestResult SimpleFloorTest( armnn::IWorkloadFactory& workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager) { - const armnn::TensorInfo inputTensorInfo({1, 3, 2, 3}, ArmnnType); - const armnn::TensorInfo outputTensorInfo(inputTensorInfo); + armnn::TensorInfo inputTensorInfo({1, 3, 2, 3}, ArmnnType); + inputTensorInfo.SetQuantizationScale(0.1f); + + armnn::TensorInfo outputTensorInfo(inputTensorInfo); + outputTensorInfo.SetQuantizationScale(0.1f); auto input = MakeTensor(inputTensorInfo, ConvertToDataType( { -37.5f, -15.2f, -8.76f, -2.0f, -1.5f, -1.3f, -0.5f, -0.4f, 0.0f, diff --git a/src/backends/reference/RefLayerSupport.cpp b/src/backends/reference/RefLayerSupport.cpp index 5ec888bde3..1d0b230c77 100644 --- a/src/backends/reference/RefLayerSupport.cpp +++ b/src/backends/reference/RefLayerSupport.cpp @@ -599,9 +599,10 @@ bool RefLayerSupport::IsFloorSupported(const TensorInfo& input, ignore_unused(output); bool supported = true; - std::array supportedTypes = + std::array supportedTypes = { - DataType::Float32 + DataType::Float32, + DataType::QuantisedSymm16 }; supported &= CheckSupportRule(TypeAnyOf(input, supportedTypes), reasonIfUnsupported, diff --git a/src/backends/reference/test/RefLayerTests.cpp b/src/backends/reference/test/RefLayerTests.cpp index 6743ef9c3d..162027032e 100644 --- a/src/backends/reference/test/RefLayerTests.cpp +++ b/src/backends/reference/test/RefLayerTests.cpp @@ -453,6 +453,7 @@ ARMNN_AUTO_TEST_CASE(Concatenation4dDiffShapeDim3Uint8, Concatenation4dDiffShape // Floor ARMNN_AUTO_TEST_CASE(SimpleFloor, SimpleFloorTest) +ARMNN_AUTO_TEST_CASE(SimpleFloorQuantisedSymm16, SimpleFloorTest) // Reshape ARMNN_AUTO_TEST_CASE(SimpleReshapeFloat32, SimpleReshapeTest) -- cgit v1.2.1