Add Signed32 to debug layer
authorNarumol Prangnawarat <narumol.prangnawarat@arm.com>
Thu, 9 Jan 2020 10:16:39 +0000 (10:16 +0000)
committerNarumol Prangnawarat <narumol.prangnawarat@arm.com>
Fri, 17 Jan 2020 18:20:02 +0000 (18:20 +0000)
Signed-off-by: Narumol Prangnawarat <narumol.prangnawarat@arm.com>
Change-Id: Iedfc196bfd18e8280e99a06db68df9c15c8ea835

src/backends/reference/RefLayerSupport.cpp
src/backends/reference/RefWorkloadFactory.cpp
src/backends/reference/workloads/Debug.cpp
src/backends/reference/workloads/RefDebugWorkload.cpp
src/backends/reference/workloads/RefDebugWorkload.hpp

index 4767aa0..26a61d4 100644 (file)
@@ -496,12 +496,13 @@ bool RefLayerSupport::IsDebugSupported(const TensorInfo& input,
 {
     bool supported = true;
 
-    std::array<DataType, 4> supportedTypes =
+    std::array<DataType, 5> supportedTypes =
     {
         DataType::Float16,
         DataType::Float32,
         DataType::QAsymmU8,
-        DataType::QSymmS16
+        DataType::QSymmS16,
+        DataType::Signed32
     };
 
     supported &= CheckSupportRule(TypeAnyOf(input, supportedTypes), reasonIfUnsupported,
index b3a0c85..2db47d3 100644 (file)
@@ -181,6 +181,10 @@ std::unique_ptr<IWorkload> RefWorkloadFactory::CreateDebug(const DebugQueueDescr
     {
         return std::make_unique<RefDebugQSymm16Workload>(descriptor, info);
     }
+    if (IsDataType<DataType::Signed32>(info))
+    {
+        return std::make_unique<RefDebugSigned32Workload>(descriptor, info);
+    }
 
     return MakeWorkload<RefDebugFloat32Workload, RefDebugQAsymm8Workload>(descriptor, info);
 }
index b7d0911..0f192f3 100644 (file)
@@ -112,4 +112,10 @@ template void Debug<int16_t>(const TensorInfo& inputInfo,
                              const std::string& layerName,
                              unsigned int slotIndex);
 
+template void Debug<int32_t>(const TensorInfo& inputInfo,
+                             const int32_t* inputData,
+                             LayerGuid guid,
+                             const std::string& layerName,
+                             unsigned int slotIndex);
+
 } // namespace armnn
index 9572f9a..59b836d 100644 (file)
@@ -48,5 +48,6 @@ template class RefDebugWorkload<DataType::Float16>;
 template class RefDebugWorkload<DataType::Float32>;
 template class RefDebugWorkload<DataType::QAsymmU8>;
 template class RefDebugWorkload<DataType::QSymmS16>;
+template class RefDebugWorkload<DataType::Signed32>;
 
 } // namespace armnn
index fc154e9..58e4464 100644 (file)
@@ -41,5 +41,6 @@ using RefDebugFloat16Workload = RefDebugWorkload<DataType::Float16>;
 using RefDebugFloat32Workload = RefDebugWorkload<DataType::Float32>;
 using RefDebugQAsymm8Workload = RefDebugWorkload<DataType::QAsymmU8>;
 using RefDebugQSymm16Workload = RefDebugWorkload<DataType::QSymmS16>;
+using RefDebugSigned32Workload = RefDebugWorkload<DataType::Signed32>;
 
 } // namespace armnn