aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJames Conroy <james.conroy@arm.com>2019-06-04 12:32:09 +0100
committerJames Conroy <james.conroy@arm.com>2019-06-04 12:37:56 +0100
commitb40d710508aede83fd1cbc17b4890c111fe0b297 (patch)
tree629272b717ea0dbcabf7874d476c9b894ae1c51f
parenta7b7928b87825502a428acd5a71713d88622982b (diff)
downloadarmnn-b40d710508aede83fd1cbc17b4890c111fe0b297.tar.gz
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 <james.conroy@arm.com> Change-Id: I6d36a07b3cfff212056125232f7842ca04bf4947
-rw-r--r--src/backends/backendsCommon/WorkloadData.cpp3
-rw-r--r--src/backends/backendsCommon/test/LayerTests.hpp7
-rw-r--r--src/backends/reference/RefLayerSupport.cpp5
-rw-r--r--src/backends/reference/test/RefLayerTests.cpp1
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<DataType> 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<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,
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<DataType,1> supportedTypes =
+ std::array<DataType,2> 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::DataType::Float32>)
+ARMNN_AUTO_TEST_CASE(SimpleFloorQuantisedSymm16, SimpleFloorTest<armnn::DataType::QuantisedSymm16>)
// Reshape
ARMNN_AUTO_TEST_CASE(SimpleReshapeFloat32, SimpleReshapeTest<armnn::DataType::Float32>)