IVGCVSW-4306 Verify the tflite Yolo v3
* Added debug layer support for QSymmS8
* QSymmS8 support for workloads
Signed-off-by: Keith Davis <keith.davis@arm.com>
Change-Id: I51af92fadc0be290629dd9198beab5abef9e351f
diff --git a/src/backends/reference/RefWorkloadFactory.cpp b/src/backends/reference/RefWorkloadFactory.cpp
index e7a9c19..792bd7d 100644
--- a/src/backends/reference/RefWorkloadFactory.cpp
+++ b/src/backends/reference/RefWorkloadFactory.cpp
@@ -24,7 +24,8 @@
std::unique_ptr<IWorkload> RefWorkloadFactory::MakeWorkload(const QueueDescriptorType& descriptor,
const WorkloadInfo& info) const
{
- return MakeWorkloadHelper<NullWorkload, F32Workload, U8Workload, NullWorkload, NullWorkload>(descriptor, info);
+ return MakeWorkloadHelper<NullWorkload, F32Workload, U8Workload, NullWorkload, NullWorkload, NullWorkload>
+ (descriptor, info);
}
template <DataType ArmnnType>
@@ -54,6 +55,11 @@
return IsDataType<DataType::QSymmS16>(info);
}
+bool IsQSymm8(const WorkloadInfo& info)
+{
+ return IsDataType<DataType::QSymmS8>(info);
+}
+
RefWorkloadFactory::RefWorkloadFactory(const std::shared_ptr<RefMemoryManager>& memoryManager)
: m_MemoryManager(memoryManager)
{
@@ -185,6 +191,10 @@
{
return std::make_unique<RefDebugQSymm16Workload>(descriptor, info);
}
+ if (IsQSymm8(info))
+ {
+ return std::make_unique<RefDebugQSymm8Workload>(descriptor, info);
+ }
if (IsDataType<DataType::Signed32>(info))
{
return std::make_unique<RefDebugSigned32Workload>(descriptor, info);
@@ -419,7 +429,7 @@
return std::make_unique<RefPermuteQSymm16Workload>(descriptor, info);
}
return MakeWorkloadHelper<RefPermuteFloat16Workload, RefPermuteFloat32Workload, RefPermuteQAsymm8Workload,
- NullWorkload, NullWorkload>(descriptor, info);
+ NullWorkload, NullWorkload, NullWorkload>(descriptor, info);
}
std::unique_ptr<IWorkload> RefWorkloadFactory::CreatePooling2d(const Pooling2dQueueDescriptor& descriptor,