IVGCVSW-3179 Extend floor workload to support QSymm16
authorJames Conroy <james.conroy@arm.com>
Tue, 4 Jun 2019 11:32:09 +0000 (12:32 +0100)
committerJames Conroy <james.conroy@arm.com>
Tue, 4 Jun 2019 11:37:56 +0000 (12:37 +0100)
 * Added support for QSymm16 in Floor workload
 * Added unit test for QSymm16 Floor

Signed-off-by: James Conroy <james.conroy@arm.com>
Change-Id: I6d36a07b3cfff212056125232f7842ca04bf4947

src/backends/backendsCommon/WorkloadData.cpp
src/backends/backendsCommon/test/LayerTests.hpp
src/backends/reference/RefLayerSupport.cpp
src/backends/reference/test/RefLayerTests.cpp

index 9cc8ba0..6d17f3e 100644 (file)
@@ -1031,7 +1031,8 @@ void FloorQueueDescriptor::Validate(const WorkloadInfo& workloadInfo) const
 
     std::vector<DataType> supportedTypes =
     {
-            DataType::Float32
+            DataType::Float32,
+            DataType::QuantisedSymm16
     };
 
     ValidateDataTypes(workloadInfo.m_InputTensorInfos[0],  supportedTypes, floorQueueDescString);
index d75a10a..df79e46 100644 (file)
@@ -1963,8 +1963,11 @@ LayerTestResult<T, 4> 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<T, 4>(inputTensorInfo, ConvertToDataType<ArmnnType>(
         { -37.5f, -15.2f, -8.76f, -2.0f, -1.5f, -1.3f, -0.5f, -0.4f, 0.0f,
index 5ec888b..1d0b230 100644 (file)
@@ -599,9 +599,10 @@ bool RefLayerSupport::IsFloorSupported(const TensorInfo& input,
     ignore_unused(output);
     bool supported = true;
 
-    std::array<DataType,1> supportedTypes =
+    std::array<DataType,2> supportedTypes =
     {
-        DataType::Float32
+        DataType::Float32,
+        DataType::QuantisedSymm16
     };
 
     supported &= CheckSupportRule(TypeAnyOf(input, supportedTypes), reasonIfUnsupported,
index 6743ef9..1620270 100644 (file)
@@ -453,6 +453,7 @@ ARMNN_AUTO_TEST_CASE(Concatenation4dDiffShapeDim3Uint8, Concatenation4dDiffShape
 
 // Floor
 ARMNN_AUTO_TEST_CASE(SimpleFloor, SimpleFloorTest<armnn::DataType::Float32>)
+ARMNN_AUTO_TEST_CASE(SimpleFloorQuantisedSymm16, SimpleFloorTest<armnn::DataType::QuantisedSymm16>)
 
 // Reshape
 ARMNN_AUTO_TEST_CASE(SimpleReshapeFloat32, SimpleReshapeTest<armnn::DataType::Float32>)