IVGCVSW-3571 Fix VTS Test Skips
* Fixed FP16 failures on Max, Min, BatchToSpace on Gpu
* Fixed Signed32 skips on Maximum and Minimum
Signed-off-by: Sadik Armagan <sadik.armagan@arm.com>
Signed-off-by: Mike Kelly <mike.kelly@arm.com>
Change-Id: I4bea19af1a0ae4c8950af8c6d5d68622cdd9b674
diff --git a/src/backends/backendsCommon/WorkloadData.cpp b/src/backends/backendsCommon/WorkloadData.cpp
index 6667eab..88cd6a6 100644
--- a/src/backends/backendsCommon/WorkloadData.cpp
+++ b/src/backends/backendsCommon/WorkloadData.cpp
@@ -1715,7 +1715,9 @@
std::vector<DataType> supportedTypes =
{
+ DataType::Float16,
DataType::Float32,
+ DataType::Signed32,
DataType::QuantisedAsymm8,
DataType::QuantisedSymm16
};
@@ -1834,6 +1836,7 @@
std::vector<DataType> supportedTypes =
{
DataType::Float32,
+ DataType::Float16,
DataType::QuantisedAsymm8,
DataType::QuantisedSymm16
};
@@ -1910,7 +1913,9 @@
std::vector<DataType> supportedTypes =
{
+ DataType::Float16,
DataType::Float32,
+ DataType::Signed32,
DataType::QuantisedAsymm8,
DataType::QuantisedSymm16
};
diff --git a/src/backends/reference/RefLayerSupport.cpp b/src/backends/reference/RefLayerSupport.cpp
index ba1623a..df9ba1f 100644
--- a/src/backends/reference/RefLayerSupport.cpp
+++ b/src/backends/reference/RefLayerSupport.cpp
@@ -1034,8 +1034,9 @@
{
bool supported = true;
- std::array<DataType,3> supportedTypes = {
+ std::array<DataType,4> supportedTypes = {
DataType::Float32,
+ DataType::Signed32,
DataType::QuantisedAsymm8,
DataType::QuantisedSymm16
};
@@ -1163,8 +1164,9 @@
{
bool supported = true;
- std::array<DataType,3> supportedTypes = {
+ std::array<DataType,4> supportedTypes = {
DataType::Float32,
+ DataType::Signed32,
DataType::QuantisedAsymm8,
DataType::QuantisedSymm16
};
diff --git a/src/backends/reference/RefWorkloadFactory.cpp b/src/backends/reference/RefWorkloadFactory.cpp
index 925eb6a..240acec 100644
--- a/src/backends/reference/RefWorkloadFactory.cpp
+++ b/src/backends/reference/RefWorkloadFactory.cpp
@@ -380,6 +380,10 @@
std::unique_ptr<armnn::IWorkload> RefWorkloadFactory::CreateMaximum(
const MaximumQueueDescriptor& descriptor, const WorkloadInfo& info) const
{
+ if (IsFloat16(info))
+ {
+ return MakeWorkload<NullWorkload, NullWorkload>(descriptor, info);
+ }
return std::make_unique<RefMaximumWorkload>(descriptor, info);
}
@@ -396,6 +400,10 @@
std::unique_ptr<armnn::IWorkload> RefWorkloadFactory::CreateMinimum(
const MinimumQueueDescriptor& descriptor, const WorkloadInfo& info) const
{
+ if (IsFloat16(info))
+ {
+ return MakeWorkload<NullWorkload, NullWorkload>(descriptor, info);
+ }
return std::make_unique<RefMinimumWorkload>(descriptor, info);
}