aboutsummaryrefslogtreecommitdiff
path: root/src/backends
diff options
context:
space:
mode:
Diffstat (limited to 'src/backends')
-rw-r--r--src/backends/backendsCommon/WorkloadData.cpp13
-rw-r--r--src/backends/reference/RefLayerSupport.cpp19
-rw-r--r--src/backends/reference/RefWorkloadFactory.cpp18
-rw-r--r--src/backends/reference/workloads/RefDebugWorkload.cpp1
-rw-r--r--src/backends/reference/workloads/RefDebugWorkload.hpp1
5 files changed, 34 insertions, 18 deletions
diff --git a/src/backends/backendsCommon/WorkloadData.cpp b/src/backends/backendsCommon/WorkloadData.cpp
index fea72256a1..410469e97d 100644
--- a/src/backends/backendsCommon/WorkloadData.cpp
+++ b/src/backends/backendsCommon/WorkloadData.cpp
@@ -1045,8 +1045,7 @@ void AdditionQueueDescriptor::Validate(const WorkloadInfo& workloadInfo) const
DataType::Float16,
DataType::QAsymmS8,
DataType::QAsymmU8,
- DataType::QSymmS16,
- DataType::QSymmS8
+ DataType::QSymmS16
};
ValidateDataTypes(inputTensorInfo0, supportedTypes, descriptorName);
@@ -1079,7 +1078,7 @@ void MultiplicationQueueDescriptor::Validate(const WorkloadInfo& workloadInfo) c
{
DataType::Float32,
DataType::QAsymmU8,
- DataType::QSymmS8,
+ DataType::QAsymmS8,
DataType::QSymmS16,
DataType::Float16
};
@@ -1389,8 +1388,8 @@ void ResizeQueueDescriptor::Validate(const WorkloadInfo& workloadInfo) const
{
DataType::Float16,
DataType::Float32,
+ DataType::QAsymmS8,
DataType::QAsymmU8,
- DataType::QSymmS8,
DataType::QSymmS16
};
@@ -1543,6 +1542,7 @@ void ConstantQueueDescriptor::Validate(const WorkloadInfo& workloadInfo) const
DataType::Float16,
DataType::Signed32,
DataType::QAsymmU8,
+ DataType::QAsymmS8,
DataType::QSymmS8,
DataType::QSymmS16
};
@@ -1570,8 +1570,7 @@ void ReshapeQueueDescriptor::Validate(const WorkloadInfo& workloadInfo) const
DataType::Signed32,
DataType::QSymmS16,
DataType::QAsymmS8,
- DataType::QAsymmU8,
- DataType::QSymmS8
+ DataType::QAsymmU8
};
ValidateDataTypes(inputTensorInfo, supportedTypes, descriptorName);
@@ -2114,8 +2113,8 @@ void MaximumQueueDescriptor::Validate(const WorkloadInfo& workloadInfo) const
DataType::Float16,
DataType::Float32,
DataType::Signed32,
+ DataType::QAsymmS8,
DataType::QAsymmU8,
- DataType::QSymmS8,
DataType::QSymmS16
};
diff --git a/src/backends/reference/RefLayerSupport.cpp b/src/backends/reference/RefLayerSupport.cpp
index bba83e23d4..5cb36c4299 100644
--- a/src/backends/reference/RefLayerSupport.cpp
+++ b/src/backends/reference/RefLayerSupport.cpp
@@ -82,7 +82,6 @@ bool RefLayerSupport::IsActivationSupported(const TensorInfo& input,
std::array<DataType,6> supportedTypes = {
DataType::Float32,
DataType::Float16,
- DataType::QSymmS8,
DataType::QAsymmS8,
DataType::QAsymmU8,
DataType::QSymmS16
@@ -147,7 +146,6 @@ bool RefLayerSupport::IsAdditionSupported(const TensorInfo& input0,
std::array<DataType,6> supportedTypes = {
DataType::Float32,
DataType::Float16,
- DataType::QSymmS8,
DataType::QAsymmS8,
DataType::QAsymmU8,
DataType::QSymmS16
@@ -332,8 +330,8 @@ bool RefLayerSupport::IsConcatSupported(const std::vector<const TensorInfo*> inp
{
DataType::Float32,
DataType::Float16,
- DataType::QSymmS8,
DataType::QAsymmU8,
+ DataType::QAsymmS8,
DataType::QSymmS16
};
@@ -355,11 +353,12 @@ bool RefLayerSupport::IsConcatSupported(const std::vector<const TensorInfo*> inp
bool RefLayerSupport::IsConstantSupported(const TensorInfo& output,
Optional<std::string&> reasonIfUnsupported) const
{
- std::array<DataType,5> supportedTypes =
+ std::array<DataType,6> supportedTypes =
{
DataType::Float32,
DataType::Signed32,
DataType::QAsymmU8,
+ DataType::QAsymmS8,
DataType::QSymmS8,
DataType::QSymmS16
};
@@ -1120,7 +1119,7 @@ bool RefLayerSupport::IsMaximumSupported(const TensorInfo& input0,
std::array<DataType,5> supportedTypes = {
DataType::Float32,
DataType::Float16,
- DataType::QSymmS8,
+ DataType::QAsymmS8,
DataType::QAsymmU8,
DataType::QSymmS16
};
@@ -1284,11 +1283,11 @@ bool RefLayerSupport::IsMultiplicationSupported(const TensorInfo& input0,
{
bool supported = true;
- std::array<DataType,5> supportedTypes = {
+ std::array<DataType,6> supportedTypes = {
DataType::Float32,
DataType::Float16,
- DataType::QSymmS8,
DataType::QAsymmU8,
+ DataType::QAsymmS8,
DataType::QSymmS16
};
@@ -1416,11 +1415,10 @@ bool RefLayerSupport::IsPooling2dSupported(const TensorInfo& input,
bool supported = true;
// Define supported output and inputs types.
- std::array<DataType,6> supportedTypes =
+ std::array<DataType,5> supportedTypes =
{
DataType::Float32,
DataType::Float16,
- DataType::QSymmS8,
DataType::QAsymmS8,
DataType::QAsymmU8,
DataType::QSymmS16
@@ -1488,7 +1486,6 @@ bool RefLayerSupport::IsReshapeSupported(const TensorInfo& input,
DataType::Signed32,
DataType::QAsymmS8,
DataType::QAsymmU8,
- DataType::QSymmS8,
DataType::QSymmS16
};
@@ -1532,8 +1529,8 @@ bool RefLayerSupport::IsResizeSupported(const TensorInfo& input,
{
DataType::Float32,
DataType::Float16,
- DataType::QSymmS8,
DataType::QAsymmU8,
+ DataType::QAsymmS8,
DataType::QSymmS16
};
diff --git a/src/backends/reference/RefWorkloadFactory.cpp b/src/backends/reference/RefWorkloadFactory.cpp
index dadb456104..02dbbabf9f 100644
--- a/src/backends/reference/RefWorkloadFactory.cpp
+++ b/src/backends/reference/RefWorkloadFactory.cpp
@@ -65,6 +65,16 @@ bool IsQSymmS8(const WorkloadInfo& info)
return IsDataType<DataType::QSymmS8>(info);
}
+bool IsQAsymmS8(const WorkloadInfo& info)
+{
+ return IsDataType<DataType::QAsymmS8>(info);
+}
+
+bool IsQAsymmU8(const WorkloadInfo& info)
+{
+ return IsDataType<DataType::QAsymmU8>(info);
+}
+
RefWorkloadFactory::RefWorkloadFactory(const std::shared_ptr<RefMemoryManager>& memoryManager)
: m_MemoryManager(memoryManager)
{
@@ -200,6 +210,14 @@ std::unique_ptr<IWorkload> RefWorkloadFactory::CreateDebug(const DebugQueueDescr
{
return std::make_unique<RefDebugQSymmS8Workload>(descriptor, info);
}
+ if (IsQAsymmU8(info))
+ {
+ return std::make_unique<RefDebugQAsymmU8Workload>(descriptor, info);
+ }
+ if (IsQAsymmS8(info))
+ {
+ return std::make_unique<RefDebugQAsymmS8Workload>(descriptor, info);
+ }
if (IsSigned32(info))
{
return std::make_unique<RefDebugSigned32Workload>(descriptor, info);
diff --git a/src/backends/reference/workloads/RefDebugWorkload.cpp b/src/backends/reference/workloads/RefDebugWorkload.cpp
index 2f0b4276c0..af714a3ca7 100644
--- a/src/backends/reference/workloads/RefDebugWorkload.cpp
+++ b/src/backends/reference/workloads/RefDebugWorkload.cpp
@@ -47,6 +47,7 @@ void RefDebugWorkload<DataType>::RegisterDebugCallback(const DebugCallbackFuncti
template class RefDebugWorkload<DataType::Float16>;
template class RefDebugWorkload<DataType::Float32>;
template class RefDebugWorkload<DataType::QAsymmU8>;
+template class RefDebugWorkload<DataType::QAsymmS8>;
template class RefDebugWorkload<DataType::QSymmS16>;
template class RefDebugWorkload<DataType::QSymmS8>;
template class RefDebugWorkload<DataType::Signed32>;
diff --git a/src/backends/reference/workloads/RefDebugWorkload.hpp b/src/backends/reference/workloads/RefDebugWorkload.hpp
index 4966ca3432..5a2a1cdf1b 100644
--- a/src/backends/reference/workloads/RefDebugWorkload.hpp
+++ b/src/backends/reference/workloads/RefDebugWorkload.hpp
@@ -40,6 +40,7 @@ private:
using RefDebugFloat16Workload = RefDebugWorkload<DataType::Float16>;
using RefDebugFloat32Workload = RefDebugWorkload<DataType::Float32>;
using RefDebugQAsymmU8Workload = RefDebugWorkload<DataType::QAsymmU8>;
+using RefDebugQAsymmS8Workload = RefDebugWorkload<DataType::QAsymmS8>;
using RefDebugQSymmS16Workload = RefDebugWorkload<DataType::QSymmS16>;
using RefDebugQSymmS8Workload = RefDebugWorkload<DataType::QSymmS8>;
using RefDebugSigned32Workload = RefDebugWorkload<DataType::Signed32>;