ArmNN
 20.05
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 armnn
13 {
14 
15 // Sample Dynamic workload factory.
17 {
18 public:
19  explicit SampleDynamicWorkloadFactory(const std::shared_ptr<SampleMemoryManager>& memoryManager);
21 
23 
24  const BackendId& GetBackendId() const override;
25 
26  static bool IsLayerSupported(const IConnectableLayer& layer,
27  Optional<DataType> dataType,
28  std::string& outReasonIfUnsupported);
29 
30  bool SupportsSubTensors() const override { return false; }
31 
32  std::unique_ptr<ITensorHandle> CreateSubTensorHandle(ITensorHandle& parent,
33  TensorShape const& subTensorShape,
34  unsigned int const* subTensorOrigin) const override
35  {
36  IgnoreUnused(parent, subTensorShape, subTensorOrigin);
37  return nullptr;
38  }
39 
40  std::unique_ptr<ITensorHandle> CreateTensorHandle(const TensorInfo& tensorInfo,
41  const bool IsMemoryManaged = true) const override;
42 
43  std::unique_ptr<ITensorHandle> CreateTensorHandle(const TensorInfo& tensorInfo,
44  DataLayout dataLayout,
45  const bool IsMemoryManaged = true) const override;
46 
47  std::unique_ptr<IWorkload> CreateAddition(const AdditionQueueDescriptor& descriptor,
48  const WorkloadInfo& info) const override;
49 
50 
51  std::unique_ptr<IWorkload> CreateInput(const InputQueueDescriptor& descriptor,
52  const WorkloadInfo& info) const override;
53 
54  std::unique_ptr<IWorkload> CreateOutput(const OutputQueueDescriptor& descriptor,
55  const WorkloadInfo& info) const override;
56 
57 private:
58  mutable std::shared_ptr<SampleMemoryManager> m_MemoryManager;
59 
60 };
61 
62 } // namespace armnn
Interface for a layer that is connectable to other layers via InputSlots and OutputSlots.
Definition: INetwork.hpp:61
DataLayout
Definition: Types.hpp:49
static bool IsLayerSupported(const IConnectableLayer &layer, Optional< DataType > dataType, std::string &outReasonIfUnsupported)
std::unique_ptr< IWorkload > CreateOutput(const OutputQueueDescriptor &descriptor, const WorkloadInfo &info) const override
const BackendId & GetBackendId() const override
std::unique_ptr< IWorkload > CreateAddition(const AdditionQueueDescriptor &descriptor, const WorkloadInfo &info) const override
Copyright (c) 2020 ARM Limited.
void IgnoreUnused(Ts &&...)
std::unique_ptr< ITensorHandle > CreateSubTensorHandle(ITensorHandle &parent, TensorShape const &subTensorShape, unsigned int const *subTensorOrigin) const override
std::unique_ptr< IWorkload > CreateInput(const InputQueueDescriptor &descriptor, const WorkloadInfo &info) const override
Contains information about inputs and outputs to a layer.
std::unique_ptr< ITensorHandle > CreateTensorHandle(const TensorInfo &tensorInfo, const bool IsMemoryManaged=true) const override