IVGCVSW-3571 Fix VTS Test Skips
authorMike Kelly <mike.kelly@arm.com>
Thu, 1 Aug 2019 07:43:57 +0000 (08:43 +0100)
committerÁron Virginás-Tar <aron.virginas-tar@arm.com>
Thu, 1 Aug 2019 09:48:05 +0000 (09:48 +0000)
 * 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

src/backends/backendsCommon/WorkloadData.cpp
src/backends/reference/RefLayerSupport.cpp
src/backends/reference/RefWorkloadFactory.cpp

index 6667eab..88cd6a6 100644 (file)
@@ -1715,7 +1715,9 @@ void MaximumQueueDescriptor::Validate(const WorkloadInfo& workloadInfo) const
 
     std::vector<DataType> supportedTypes =
     {
+        DataType::Float16,
         DataType::Float32,
+        DataType::Signed32,
         DataType::QuantisedAsymm8,
         DataType::QuantisedSymm16
     };
@@ -1834,6 +1836,7 @@ void BatchToSpaceNdQueueDescriptor::Validate(const WorkloadInfo& workloadInfo) c
     std::vector<DataType> supportedTypes =
     {
             DataType::Float32,
+            DataType::Float16,
             DataType::QuantisedAsymm8,
             DataType::QuantisedSymm16
     };
@@ -1910,7 +1913,9 @@ void MinimumQueueDescriptor::Validate(const WorkloadInfo& workloadInfo) const
 
     std::vector<DataType> supportedTypes =
     {
+        DataType::Float16,
         DataType::Float32,
+        DataType::Signed32,
         DataType::QuantisedAsymm8,
         DataType::QuantisedSymm16
     };
index ba1623a..df9ba1f 100644 (file)
@@ -1034,8 +1034,9 @@ bool RefLayerSupport::IsMaximumSupported(const TensorInfo& input0,
 {
     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 RefLayerSupport::IsMinimumSupported(const TensorInfo& input0,
 {
     bool supported = true;
 
-    std::array<DataType,3> supportedTypes = {
+    std::array<DataType,4> supportedTypes = {
         DataType::Float32,
+        DataType::Signed32,
         DataType::QuantisedAsymm8,
         DataType::QuantisedSymm16
     };
index 925eb6a..240acec 100644 (file)
@@ -380,6 +380,10 @@ std::unique_ptr<armnn::IWorkload> RefWorkloadFactory::CreateSubtraction(
 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::CreateMean(
 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);
 }