6 #include <backendsCommon/CpuTensorHandle.hpp> 25 : m_MemoryManager(memoryManager)
27 m_EnableWinograd = winograd;
28 m_BlockConfigs = BlockConfigs;
43 std::string& outReasonIfUnsupported)
49 const bool isMemoryManaged)
const 54 return std::make_unique<EthosnRefTensorHandle>(tensorInfo, m_MemoryManager);
59 const bool isMemoryManaged)
const 64 return std::make_unique<EthosnRefTensorHandle>(tensorInfo, m_MemoryManager);
82 throw InvalidArgumentException(
"EthosnRefWorkloadFactory::CreateInput: data input and output differ in byte count.");
85 return std::make_unique<CopyMemGenericWorkload>(descriptor,
info);
101 throw InvalidArgumentException(
"EthosnRefWorkloadFactory::CreateOutput: data input and output differ in byte count.");
104 return std::make_unique<CopyMemGenericWorkload>(descriptor,
info);
110 return std::make_unique<EthosnRefConvolution2dWorkload>(descriptor,
info, m_EnableWinograd, m_BlockConfigs);
117 return std::make_unique<EthosnRefDepthwiseConvolution2dWorkload>(descriptor,
info);
124 return std::make_unique<EthosnRefTransposeConvolution2dWorkload>(descriptor,
info);
130 return std::make_unique<EthosnRefPooling2dWorkload>(descriptor,
info);
std::unique_ptr< IWorkload > CreateConvolution2d(const Convolution2dQueueDescriptor &descriptor, const WorkloadInfo &info) const override
std::unique_ptr< ITensorHandle > CreateTensorHandle(const TensorInfo &tensorInfo, const bool IsMemoryManaged=true) const override
Copyright (c) 2021 ARM Limited and Contributors.
void IgnoreUnused(Ts &&...)
std::unique_ptr< IWorkload > CreateTransposeConvolution2d(const TransposeConvolution2dQueueDescriptor &descriptor, const WorkloadInfo &info) const override
std::vector< TensorInfo > m_InputTensorInfos
std::unique_ptr< IWorkload > CreateDepthwiseConvolution2d(const DepthwiseConvolution2dQueueDescriptor &descriptor, const WorkloadInfo &info) const override
static bool IsLayerSupported(const Layer &layer, Optional< DataType > dataType, std::string &outReasonIfUnsupported)
const BackendId & GetBackendId() const override
std::unique_ptr< IWorkload > CreateOutput(const OutputQueueDescriptor &descriptor, const WorkloadInfo &info) const override
std::vector< TensorInfo > m_OutputTensorInfos
std::unique_ptr< IWorkload > CreateInput(const InputQueueDescriptor &descriptor, const WorkloadInfo &info) const override
static bool IsLayerSupported(const BackendId &backendId, const IConnectableLayer &layer, Optional< DataType > dataType, std::string &outReasonIfUnsupported)
EthosnRefWorkloadFactory()
constexpr const char * EthosnRefBackendId()
Contains information about TensorInfos of a layer.
Depthwise Convolution 2D layer workload data.
std::unique_ptr< IWorkload > CreatePooling2d(const Pooling2dQueueDescriptor &descriptor, const WorkloadInfo &info) const override