ArmNN
 25.11
Loading...
Searching...
No Matches
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
12namespace sdb // sample dynamic backend
13{
14
15// Sample Dynamic workload factory.
17{
18public:
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;
56
57
58 std::unique_ptr<armnn::IWorkload> CreateInput(const armnn::InputQueueDescriptor& descriptor,
59 const armnn::WorkloadInfo& info) const;
60
61 std::unique_ptr<armnn::IWorkload> CreateOutput(const armnn::OutputQueueDescriptor& descriptor,
62 const armnn::WorkloadInfo& info) const;
63
64 std::unique_ptr<armnn::IWorkload> CreateWorkload(armnn::LayerType type,
65 const armnn::QueueDescriptor& descriptor,
66 const armnn::WorkloadInfo& info) const override;
67
68private:
69 mutable std::shared_ptr<SampleMemoryManager> m_MemoryManager;
70
71};
72
73} // namespace sdb
#define ARMNN_DEPRECATED_MSG(message)
Interface for a layer that is connectable to other layers via InputSlots and OutputSlots.
Definition INetwork.hpp:81
SampleDynamicWorkloadFactory(const std::shared_ptr< SampleMemoryManager > &memoryManager)
static bool IsLayerSupported(const armnn::IConnectableLayer &layer, armnn::Optional< armnn::DataType > dataType, std::string &outReasonIfUnsupported)
std::unique_ptr< armnn::ITensorHandle > CreateSubTensorHandle(armnn::ITensorHandle &parent, armnn::TensorShape const &subTensorShape, unsigned int const *subTensorOrigin) const override
std::unique_ptr< armnn::IWorkload > CreateAddition(const armnn::AdditionQueueDescriptor &descriptor, const armnn::WorkloadInfo &info) const
std::unique_ptr< armnn::IWorkload > CreateInput(const armnn::InputQueueDescriptor &descriptor, const armnn::WorkloadInfo &info) const
std::unique_ptr< armnn::IWorkload > CreateOutput(const armnn::OutputQueueDescriptor &descriptor, const armnn::WorkloadInfo &info) const
const armnn::BackendId & GetBackendId() const override
std::unique_ptr< armnn::IWorkload > CreateWorkload(armnn::LayerType type, const armnn::QueueDescriptor &descriptor, const armnn::WorkloadInfo &info) const override
Backends should implement their own CreateWorkload function with a switch statement.
std::unique_ptr< armnn::ITensorHandle > CreateTensorHandle(const armnn::TensorInfo &tensorInfo, const bool IsMemoryManaged=true) const override
Copyright (c) 2021 ARM Limited and Contributors.