diff options
author | Keith Davis <keith.davis@arm.com> | 2020-02-11 16:51:50 +0000 |
---|---|---|
committer | James Conroy <james.conroy@arm.com> | 2020-02-17 21:53:29 +0000 |
commit | 0c2eeac6347533a1d3d456aebea492f5123388f3 (patch) | |
tree | f218fc236137791c491b680dfd24fb9706c171a6 /src/backends/reference/RefWorkloadFactory.cpp | |
parent | 4c3c1f486ab775eacb1f6455f8468f9be2c3e4f7 (diff) | |
download | armnn-0c2eeac6347533a1d3d456aebea492f5123388f3.tar.gz |
IVGCVSW-4436 Add ExecuteNetwork test for mobilenet_v2_int8
* Add QAsymmS8 to QueueDescriptor supportedTypes
* Add QSymmS8/QAsymmS8 to RefLayerSupport supportedTypes
* Some additional comments and refactoring
Change-Id: I8567314452e6e8f6f69cb6e458ee147d3fc92fab
Signed-off-by: Keith Davis <keith.davis@arm.com>
Diffstat (limited to 'src/backends/reference/RefWorkloadFactory.cpp')
-rw-r--r-- | src/backends/reference/RefWorkloadFactory.cpp | 25 |
1 files changed, 15 insertions, 10 deletions
diff --git a/src/backends/reference/RefWorkloadFactory.cpp b/src/backends/reference/RefWorkloadFactory.cpp index 792bd7d3ad..dadb456104 100644 --- a/src/backends/reference/RefWorkloadFactory.cpp +++ b/src/backends/reference/RefWorkloadFactory.cpp @@ -45,17 +45,22 @@ bool IsDataType(const WorkloadInfo& info) return false; } +bool IsSigned32(const WorkloadInfo& info) +{ + return IsDataType<DataType::Signed32>(info); +} + bool IsFloat16(const WorkloadInfo& info) { return IsDataType<DataType::Float16>(info); } -bool IsQSymm16(const WorkloadInfo& info) +bool IsQSymmS16(const WorkloadInfo& info) { return IsDataType<DataType::QSymmS16>(info); } -bool IsQSymm8(const WorkloadInfo& info) +bool IsQSymmS8(const WorkloadInfo& info) { return IsDataType<DataType::QSymmS8>(info); } @@ -187,20 +192,20 @@ std::unique_ptr<IWorkload> RefWorkloadFactory::CreateDebug(const DebugQueueDescr { return std::make_unique<RefDebugFloat16Workload>(descriptor, info); } - if (IsQSymm16(info)) + if (IsQSymmS16(info)) { - return std::make_unique<RefDebugQSymm16Workload>(descriptor, info); + return std::make_unique<RefDebugQSymmS16Workload>(descriptor, info); } - if (IsQSymm8(info)) + if (IsQSymmS8(info)) { - return std::make_unique<RefDebugQSymm8Workload>(descriptor, info); + return std::make_unique<RefDebugQSymmS8Workload>(descriptor, info); } - if (IsDataType<DataType::Signed32>(info)) + if (IsSigned32(info)) { return std::make_unique<RefDebugSigned32Workload>(descriptor, info); } - return MakeWorkload<RefDebugFloat32Workload, RefDebugQAsymm8Workload>(descriptor, info); + return MakeWorkload<RefDebugFloat32Workload, RefDebugQAsymmU8Workload>(descriptor, info); } std::unique_ptr<IWorkload> RefWorkloadFactory::CreateDepthToSpace(const DepthToSpaceQueueDescriptor& descriptor, @@ -410,7 +415,7 @@ std::unique_ptr<IWorkload> RefWorkloadFactory::CreateOutput(const OutputQueueDes std::unique_ptr<IWorkload> RefWorkloadFactory::CreatePad(const PadQueueDescriptor& descriptor, const WorkloadInfo& info) const { - if (IsQSymm16(info)) + if (IsQSymmS16(info)) { return std::make_unique<RefPadQSymm16Workload>(descriptor, info); } @@ -424,7 +429,7 @@ std::unique_ptr<IWorkload> RefWorkloadFactory::CreatePad(const PadQueueDescripto std::unique_ptr<IWorkload> RefWorkloadFactory::CreatePermute(const PermuteQueueDescriptor& descriptor, const WorkloadInfo& info) const { - if (IsQSymm16(info)) + if (IsQSymmS16(info)) { return std::make_unique<RefPermuteQSymm16Workload>(descriptor, info); } |