blob: d62559547862ed00d7df57d0bf432d55c14632e7 [file] [log] [blame]
Teresa Charline8816722020-08-05 17:43:54 +01001//
2// Copyright © 2020 Arm Ltd and Contributors. All rights reserved.
3// SPDX-License-Identifier: MIT
4//
5
6#include "SampleDynamicTensorHandleFactory.hpp"
7#include "SampleTensorHandle.hpp"
8
9#include <armnn/utility/IgnoreUnused.hpp>
10
Jan Eilersc84e45d2020-08-19 14:14:36 +010011namespace sdb // sample dynamic backend
Teresa Charline8816722020-08-05 17:43:54 +010012{
13
Jan Eilersc84e45d2020-08-19 14:14:36 +010014using FactoryId = armnn::ITensorHandleFactory::FactoryId;
Teresa Charline8816722020-08-05 17:43:54 +010015
16const FactoryId& SampleDynamicTensorHandleFactory::GetIdStatic()
17{
18 static const FactoryId s_Id(SampleDynamicTensorHandleFactoryId());
19 return s_Id;
20}
21
Jan Eilersc84e45d2020-08-19 14:14:36 +010022std::unique_ptr<armnn::ITensorHandle>
23SampleDynamicTensorHandleFactory::CreateSubTensorHandle(armnn::ITensorHandle& parent,
24 armnn::TensorShape const& subTensorShape,
Teresa Charline8816722020-08-05 17:43:54 +010025 unsigned int const* subTensorOrigin) const
26{
27 IgnoreUnused(parent, subTensorShape, subTensorOrigin);
28 return nullptr;
29}
30
Jan Eilersc84e45d2020-08-19 14:14:36 +010031std::unique_ptr<armnn::ITensorHandle> SampleDynamicTensorHandleFactory::CreateTensorHandle(
32 const armnn::TensorInfo& tensorInfo) const
Teresa Charline8816722020-08-05 17:43:54 +010033{
34 return std::make_unique<SampleTensorHandle>(tensorInfo, m_MemoryManager);
35}
36
Jan Eilersc84e45d2020-08-19 14:14:36 +010037std::unique_ptr<armnn::ITensorHandle> SampleDynamicTensorHandleFactory::CreateTensorHandle(
38 const armnn::TensorInfo& tensorInfo,
39 armnn::DataLayout dataLayout) const
Teresa Charline8816722020-08-05 17:43:54 +010040{
41 IgnoreUnused(dataLayout);
42 return std::make_unique<SampleTensorHandle>(tensorInfo, m_MemoryManager);
43}
44
Jan Eilersc84e45d2020-08-19 14:14:36 +010045std::unique_ptr<armnn::ITensorHandle> SampleDynamicTensorHandleFactory::CreateTensorHandle(
46 const armnn::TensorInfo& tensorInfo,
47 const bool IsMemoryManaged) const
Teresa Charline8816722020-08-05 17:43:54 +010048{
49 if (IsMemoryManaged)
50 {
51 return std::make_unique<SampleTensorHandle>(tensorInfo, m_MemoryManager);
52 }
53 else
54 {
55 return std::make_unique<SampleTensorHandle>(tensorInfo, m_ImportFlags);
56 }
57}
58
Jan Eilersc84e45d2020-08-19 14:14:36 +010059std::unique_ptr<armnn::ITensorHandle> SampleDynamicTensorHandleFactory::CreateTensorHandle(
60 const armnn::TensorInfo& tensorInfo,
61 armnn::DataLayout dataLayout,
62 const bool IsMemoryManaged) const
Teresa Charline8816722020-08-05 17:43:54 +010063{
64 IgnoreUnused(dataLayout);
65 if (IsMemoryManaged)
66 {
67 return std::make_unique<SampleTensorHandle>(tensorInfo, m_MemoryManager);
68 }
69 else
70 {
71 return std::make_unique<SampleTensorHandle>(tensorInfo, m_ImportFlags);
72 }
73}
74
75const FactoryId& SampleDynamicTensorHandleFactory::GetId() const
76{
77 return GetIdStatic();
78}
79
80bool SampleDynamicTensorHandleFactory::SupportsSubTensors() const
81{
82 return false;
83}
84
Jan Eilersc84e45d2020-08-19 14:14:36 +010085armnn::MemorySourceFlags SampleDynamicTensorHandleFactory::GetExportFlags() const
Teresa Charline8816722020-08-05 17:43:54 +010086{
87 return m_ExportFlags;
88}
89
Jan Eilersc84e45d2020-08-19 14:14:36 +010090armnn::MemorySourceFlags SampleDynamicTensorHandleFactory::GetImportFlags() const
Teresa Charline8816722020-08-05 17:43:54 +010091{
92 return m_ImportFlags;
93}
94
Jan Eilersc84e45d2020-08-19 14:14:36 +010095} // namespace sdb