xref: /aosp_15_r20/external/armnn/src/dynamic/sample/SampleDynamicTensorHandleFactory.cpp (revision 89c4ff92f2867872bb9e2354d150bf0c8c502810)
1 //
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 
11 namespace sdb // sample dynamic backend
12 {
13 
14 using FactoryId = armnn::ITensorHandleFactory::FactoryId;
15 
GetIdStatic()16 const FactoryId& SampleDynamicTensorHandleFactory::GetIdStatic()
17 {
18     static const FactoryId s_Id(SampleDynamicTensorHandleFactoryId());
19     return s_Id;
20 }
21 
22 std::unique_ptr<armnn::ITensorHandle>
CreateSubTensorHandle(armnn::ITensorHandle & parent,armnn::TensorShape const & subTensorShape,unsigned int const * subTensorOrigin) const23 SampleDynamicTensorHandleFactory::CreateSubTensorHandle(armnn::ITensorHandle& parent,
24                                                         armnn::TensorShape const& subTensorShape,
25                                                         unsigned int const* subTensorOrigin) const
26 {
27     IgnoreUnused(parent, subTensorShape, subTensorOrigin);
28     return nullptr;
29 }
30 
CreateTensorHandle(const armnn::TensorInfo & tensorInfo) const31 std::unique_ptr<armnn::ITensorHandle> SampleDynamicTensorHandleFactory::CreateTensorHandle(
32         const armnn::TensorInfo& tensorInfo) const
33 {
34     return std::make_unique<SampleTensorHandle>(tensorInfo, m_MemoryManager);
35 }
36 
CreateTensorHandle(const armnn::TensorInfo & tensorInfo,armnn::DataLayout dataLayout) const37 std::unique_ptr<armnn::ITensorHandle> SampleDynamicTensorHandleFactory::CreateTensorHandle(
38         const armnn::TensorInfo& tensorInfo,
39         armnn::DataLayout dataLayout) const
40 {
41     IgnoreUnused(dataLayout);
42     return std::make_unique<SampleTensorHandle>(tensorInfo, m_MemoryManager);
43 }
44 
CreateTensorHandle(const armnn::TensorInfo & tensorInfo,const bool IsMemoryManaged) const45 std::unique_ptr<armnn::ITensorHandle> SampleDynamicTensorHandleFactory::CreateTensorHandle(
46         const armnn::TensorInfo& tensorInfo,
47         const bool IsMemoryManaged) const
48 {
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 
CreateTensorHandle(const armnn::TensorInfo & tensorInfo,armnn::DataLayout dataLayout,const bool IsMemoryManaged) const59 std::unique_ptr<armnn::ITensorHandle> SampleDynamicTensorHandleFactory::CreateTensorHandle(
60         const armnn::TensorInfo& tensorInfo,
61         armnn::DataLayout dataLayout,
62         const bool IsMemoryManaged) const
63 {
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 
GetId() const75 const FactoryId& SampleDynamicTensorHandleFactory::GetId() const
76 {
77     return GetIdStatic();
78 }
79 
SupportsSubTensors() const80 bool SampleDynamicTensorHandleFactory::SupportsSubTensors() const
81 {
82     return false;
83 }
84 
GetExportFlags() const85 armnn::MemorySourceFlags SampleDynamicTensorHandleFactory::GetExportFlags() const
86 {
87     return m_ExportFlags;
88 }
89 
GetImportFlags() const90 armnn::MemorySourceFlags SampleDynamicTensorHandleFactory::GetImportFlags() const
91 {
92     return m_ImportFlags;
93 }
94 
95 } // namespace sdb