From c577f2c6a3b4ddb6ba87a882723c53a248afbeba Mon Sep 17 00:00:00 2001 From: telsoa01 Date: Fri, 31 Aug 2018 09:22:23 +0100 Subject: Release 18.08 --- src/armnn/backends/RefWorkloadFactory.cpp | 61 ++++++++++++++----------------- 1 file changed, 28 insertions(+), 33 deletions(-) (limited to 'src/armnn/backends/RefWorkloadFactory.cpp') diff --git a/src/armnn/backends/RefWorkloadFactory.cpp b/src/armnn/backends/RefWorkloadFactory.cpp index d7d498e89e..9294c5accc 100644 --- a/src/armnn/backends/RefWorkloadFactory.cpp +++ b/src/armnn/backends/RefWorkloadFactory.cpp @@ -18,22 +18,15 @@ template RefWorkloadFactory::MakeWorkload(const QueueDescriptorType& descriptor, const WorkloadInfo& info) const { - if (!IsOperationQueueDescriptor(descriptor) || m_OperationWorkloadsAllowed) - { - return armnn::MakeWorkload(descriptor, info); - } - else - { - return std::unique_ptr(); - } + return armnn::MakeWorkload(descriptor, info); } -RefWorkloadFactory::RefWorkloadFactory(bool operationWorkloadsAllowed) - : m_OperationWorkloadsAllowed(operationWorkloadsAllowed) +RefWorkloadFactory::RefWorkloadFactory() { } -bool RefWorkloadFactory::IsLayerSupported(const Layer& layer, DataType dataType, std::string& outReasonIfUnsupported) +bool RefWorkloadFactory::IsLayerSupported(const Layer& layer, boost::optional dataType, + std::string& outReasonIfUnsupported) { return IWorkloadFactory::IsLayerSupported(Compute::CpuRef, layer, dataType, outReasonIfUnsupported); } @@ -60,7 +53,7 @@ std::unique_ptr RefWorkloadFactory::CreateInput(const InputQueueDescr throw InvalidArgumentException("RefWorkloadFactory::CreateInput: data input and output differ in byte count."); } - return MakeWorkload(descriptor, info); + return MakeWorkload(descriptor, info); } std::unique_ptr RefWorkloadFactory::CreateOutput(const OutputQueueDescriptor& descriptor, @@ -79,7 +72,7 @@ std::unique_ptr RefWorkloadFactory::CreateOutput(const OutputQueueDes throw InvalidArgumentException("RefWorkloadFactory::CreateOutput: data input and output differ in byte count."); } - return MakeWorkload(descriptor, info); + return MakeWorkload(descriptor, info); } std::unique_ptr RefWorkloadFactory::CreateActivation(const ActivationQueueDescriptor& descriptor, @@ -168,25 +161,7 @@ std::unique_ptr RefWorkloadFactory::CreateMemCopy(const MemCop { throw InvalidArgumentException("RefWorkloadFactory: CreateMemCopy() expected an input tensor."); } - // Create a workload that will copy tensor data from the inputs, which can have a number of different formats, - // to CPU tensors. - switch (descriptor.m_Inputs[0]->GetType()) - { -#if ARMCOMPUTECL_ENABLED - case ITensorHandle::CL: - { - return MakeWorkload(descriptor, info); - } -#endif -#if ARMCOMPUTENEON_ENABLED - case ITensorHandle::Neon: - { - return MakeWorkload(descriptor, info); - } -#endif - default: - throw InvalidArgumentException("RefWorkloadFactory: Destination type not supported for MemCopy Workload."); - } + return std::make_unique(descriptor, info); } std::unique_ptr RefWorkloadFactory::CreateResizeBilinear(const ResizeBilinearQueueDescriptor& descriptor, @@ -221,9 +196,29 @@ std::unique_ptr RefWorkloadFactory::CreateReshape(const ReshapeQueueD } std::unique_ptr RefWorkloadFactory::CreateFloor(const FloorQueueDescriptor& descriptor, - const WorkloadInfo& info) const + const WorkloadInfo& info) const { return MakeWorkload(descriptor, info); } +std::unique_ptr RefWorkloadFactory::CreateLstm(const LstmQueueDescriptor& descriptor, + const WorkloadInfo& info) const +{ + return MakeWorkload(descriptor, info); +} + +std::unique_ptr RefWorkloadFactory::CreateConvertFp16ToFp32( + const ConvertFp16ToFp32QueueDescriptor& descriptor, + const WorkloadInfo& info) const +{ + return std::make_unique(descriptor, info); +} + +std::unique_ptr RefWorkloadFactory::CreateConvertFp32ToFp16( + const ConvertFp32ToFp16QueueDescriptor& descriptor, + const WorkloadInfo& info) const +{ + return std::make_unique(descriptor, info); +} + } // namespace armnn -- cgit v1.2.1