ArmNN
 20.05
NeonTensorHandleFactory.hpp
Go to the documentation of this file.
1 //
2 // Copyright © 2017 Arm Ltd. All rights reserved.
3 // SPDX-License-Identifier: MIT
4 //
5 
6 #pragma once
7 
10 
11 namespace armnn
12 {
13 
14 constexpr const char* NeonTensorHandleFactoryId() { return "Arm/Neon/TensorHandleFactory"; }
15 
17 {
18 public:
19  NeonTensorHandleFactory(std::weak_ptr<NeonMemoryManager> mgr)
20  : m_MemoryManager(mgr)
21  {}
22 
23  std::unique_ptr<ITensorHandle> CreateSubTensorHandle(ITensorHandle& parent,
24  const TensorShape& subTensorShape,
25  const unsigned int* subTensorOrigin) const override;
26 
27  std::unique_ptr<ITensorHandle> CreateTensorHandle(const TensorInfo& tensorInfo) const override;
28 
29  std::unique_ptr<ITensorHandle> CreateTensorHandle(const TensorInfo& tensorInfo,
30  DataLayout dataLayout) const override;
31 
32  std::unique_ptr<ITensorHandle> CreateTensorHandle(const TensorInfo& tensorInfo,
33  const bool IsMemoryManaged = true) const override;
34 
35  std::unique_ptr<ITensorHandle> CreateTensorHandle(const TensorInfo& tensorInfo,
36  DataLayout dataLayout,
37  const bool IsMemoryManaged = true) const override;
38 
39  static const FactoryId& GetIdStatic();
40 
41  const FactoryId& GetId() const override;
42 
43  bool SupportsSubTensors() const override;
44 
45  MemorySourceFlags GetExportFlags() const override;
46 
47  MemorySourceFlags GetImportFlags() const override;
48 
49 private:
50  mutable std::shared_ptr<NeonMemoryManager> m_MemoryManager;
51 };
52 
53 } // namespace armnn
DataLayout
Definition: Types.hpp:49
MemorySourceFlags GetImportFlags() const override
std::unique_ptr< ITensorHandle > CreateTensorHandle(const TensorInfo &tensorInfo) const override
unsigned int MemorySourceFlags
Copyright (c) 2020 ARM Limited.
const FactoryId & GetId() const override
MemorySourceFlags GetExportFlags() const override
constexpr const char * NeonTensorHandleFactoryId()
NeonTensorHandleFactory(std::weak_ptr< NeonMemoryManager > mgr)
static const FactoryId & GetIdStatic()
std::unique_ptr< ITensorHandle > CreateSubTensorHandle(ITensorHandle &parent, const TensorShape &subTensorShape, const unsigned int *subTensorOrigin) const override