ArmNN
 22.02
SampleDynamicWorkloadFactory.hpp
Go to the documentation of this file.
1 //
2 // Copyright © 2020 Arm Ltd. All rights reserved.
3 // SPDX-License-Identifier: MIT
4 //
5 #pragma once
6 
8 
9 #include <armnn/Optional.hpp>
11 
12 namespace sdb // sample dynamic backend
13 {
14 
15 // Sample Dynamic workload factory.
17 {
18 public:
19  explicit SampleDynamicWorkloadFactory(const std::shared_ptr<SampleMemoryManager>& memoryManager);
21 
23 
24  const armnn::BackendId& GetBackendId() const override;
25 
26  static bool IsLayerSupported(const armnn::IConnectableLayer& layer,
28  std::string& outReasonIfUnsupported);
29 
30  bool SupportsSubTensors() const override { return false; }
31 
32  ARMNN_DEPRECATED_MSG("Use ITensorHandleFactory::CreateSubTensorHandle instead")
33  std::unique_ptr<armnn::ITensorHandle> CreateSubTensorHandle(
34  armnn::ITensorHandle& parent,
35  armnn::TensorShape const& subTensorShape,
36  unsigned int const* subTensorOrigin) const override
37  {
38  IgnoreUnused(parent, subTensorShape, subTensorOrigin);
39  return nullptr;
40  }
41 
42  ARMNN_DEPRECATED_MSG("Use ITensorHandleFactory::CreateTensorHandle instead")
43  std::unique_ptr<armnn::ITensorHandle> CreateTensorHandle(
44  const armnn::TensorInfo& tensorInfo,
45  const bool IsMemoryManaged = true) const override;
46 
47  ARMNN_DEPRECATED_MSG("Use ITensorHandleFactory::CreateTensorHandle instead")
48  std::unique_ptr<armnn::ITensorHandle> CreateTensorHandle(
49  const armnn::TensorInfo& tensorInfo,
50  armnn::DataLayout dataLayout,
51  const bool IsMemoryManaged = true) const override;
52 
53  std::unique_ptr<armnn::IWorkload> CreateAddition(
54  const armnn::AdditionQueueDescriptor& descriptor,
55  const armnn::WorkloadInfo& info) const override;
56 
57 
58  std::unique_ptr<armnn::IWorkload> CreateInput(const armnn::InputQueueDescriptor& descriptor,
59  const armnn::WorkloadInfo& info) const override;
60 
61  std::unique_ptr<armnn::IWorkload> CreateOutput(const armnn::OutputQueueDescriptor& descriptor,
62  const armnn::WorkloadInfo& info) const override;
63 
64 private:
65  mutable std::shared_ptr<SampleMemoryManager> m_MemoryManager;
66 
67 };
68 
69 } // namespace sdb
Interface for a layer that is connectable to other layers via InputSlots and OutputSlots.
Definition: INetwork.hpp:66
DataLayout
Definition: Types.hpp:49
std::unique_ptr< armnn::ITensorHandle > CreateSubTensorHandle(armnn::ITensorHandle &parent, armnn::TensorShape const &subTensorShape, unsigned int const *subTensorOrigin) const override
std::unique_ptr< armnn::IWorkload > CreateOutput(const armnn::OutputQueueDescriptor &descriptor, const armnn::WorkloadInfo &info) const override
Copyright (c) 2021 ARM Limited and Contributors.
void IgnoreUnused(Ts &&...)
const armnn::BackendId & GetBackendId() const override
static bool IsLayerSupported(const armnn::IConnectableLayer &layer, armnn::Optional< armnn::DataType > dataType, std::string &outReasonIfUnsupported)
std::unique_ptr< armnn::ITensorHandle > CreateTensorHandle(const armnn::TensorInfo &tensorInfo, const bool IsMemoryManaged=true) const override
std::unique_ptr< armnn::IWorkload > CreateAddition(const armnn::AdditionQueueDescriptor &descriptor, const armnn::WorkloadInfo &info) const override
std::unique_ptr< armnn::IWorkload > CreateInput(const armnn::InputQueueDescriptor &descriptor, const armnn::WorkloadInfo &info) const override
Contains information about TensorInfos of a layer.
#define ARMNN_DEPRECATED_MSG(message)
Definition: Deprecated.hpp:43