From de36e4a9c299028e792c3a5bd99ad0816d806077 Mon Sep 17 00:00:00 2001 From: Ryan OShea Date: Fri, 13 Mar 2020 16:26:19 +0000 Subject: IVGCVSW-3726 Upload ArmNN Doxygen files * Upload current ArmNN Doxygen files Signed-off-by: Ryan OShea Change-Id: I8989ed16ee40a99a4495b100bd009cf3e24a7285 --- .../classarmnn_1_1_base_memory_manager.xhtml | 647 +++++++++++++++++++++ 1 file changed, 647 insertions(+) create mode 100644 Documentation/classarmnn_1_1_base_memory_manager.xhtml (limited to 'Documentation/classarmnn_1_1_base_memory_manager.xhtml') diff --git a/Documentation/classarmnn_1_1_base_memory_manager.xhtml b/Documentation/classarmnn_1_1_base_memory_manager.xhtml new file mode 100644 index 0000000000..8b0d67f487 --- /dev/null +++ b/Documentation/classarmnn_1_1_base_memory_manager.xhtml @@ -0,0 +1,647 @@ + + + + + + + + + + + + + +ArmNN: BaseMemoryManager Class Reference + + + + + + + + + + + + + + + + +
+
+ + + + ArmNN + + + +
+
+  20.02 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
BaseMemoryManager Class Referenceabstract
+
+
+ +

#include <BaseMemoryManager.hpp>

+
+Inheritance diagram for BaseMemoryManager:
+
+
+ + +IMemoryManager +ClMemoryManager +NeonMemoryManager + +
+ + + + +

+Public Types

enum  MemoryAffinity { Buffer, +Offset + }
 
+ + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 BaseMemoryManager ()
 
virtual ~BaseMemoryManager ()
 
void Acquire () override
 
void Release () override
 
 BaseMemoryManager (std::unique_ptr< arm_compute::IAllocator > alloc, MemoryAffinity memoryAffinity)
 
std::shared_ptr< arm_compute::MemoryManagerOnDemand > & GetIntraLayerManager ()
 
std::shared_ptr< arm_compute::MemoryManagerOnDemand > & GetInterLayerManager ()
 
std::shared_ptr< arm_compute::IMemoryGroup > & GetInterLayerMemoryGroup ()
 
- Public Member Functions inherited from IMemoryManager
virtual ~IMemoryManager ()
 
+ + + + + + + + +

+Protected Member Functions

std::shared_ptr< arm_compute::MemoryManagerOnDemand > CreateArmComputeMemoryManager (MemoryAffinity memoryAffinity)
 
virtual std::shared_ptr< arm_compute::IMemoryGroup > CreateMemoryGroup (const std::shared_ptr< arm_compute::MemoryManagerOnDemand > &memoryManager)=0
 
- Protected Member Functions inherited from IMemoryManager
 IMemoryManager ()
 
+ + + + + + + + + +

+Protected Attributes

std::unique_ptr< arm_compute::IAllocator > m_Allocator
 
std::shared_ptr< arm_compute::MemoryManagerOnDemand > m_IntraLayerMemoryMgr
 
std::shared_ptr< arm_compute::MemoryManagerOnDemand > m_InterLayerMemoryMgr
 
std::shared_ptr< arm_compute::IMemoryGroup > m_InterLayerMemoryGroup
 
+

Detailed Description

+
+

Definition at line 23 of file BaseMemoryManager.hpp.

+

Member Enumeration Documentation

+ +

◆ MemoryAffinity

+ +
+
+ + + + + +
+ + + + +
enum MemoryAffinity
+
+strong
+
+ + + +
Enumerator
Buffer 
Offset 
+ +

Definition at line 26 of file BaseMemoryManager.hpp.

+
27  {
28  Buffer,
29  Offset
30  };
unsigned int Offset(const TensorShape &shape, unsigned int batch, unsigned int height, unsigned int width, unsigned int channels, const DataLayoutIndexed &dataLayout)
+
+
+
+

Constructor & Destructor Documentation

+ +

◆ BaseMemoryManager() [1/2]

+ +
+
+ + + + + +
+ + + + + + + +
BaseMemoryManager ()
+
+inline
+
+ +

Definition at line 32 of file BaseMemoryManager.hpp.

+ +

Referenced by BaseMemoryManager::~BaseMemoryManager().

+
32 { }
+
+
+ +

◆ ~BaseMemoryManager()

+ +
+
+ + + + + +
+ + + + + + + +
virtual ~BaseMemoryManager ()
+
+inlinevirtual
+
+
+ +

◆ BaseMemoryManager() [2/2]

+ +
+
+ + + + + + + + + + + + + + + + + + +
BaseMemoryManager (std::unique_ptr< arm_compute::IAllocator > alloc,
MemoryAffinity memoryAffinity 
)
+
+ +

Definition at line 19 of file BaseMemoryManager.cpp.

+ +

References BaseMemoryManager::CreateArmComputeMemoryManager(), BaseMemoryManager::m_Allocator, BaseMemoryManager::m_InterLayerMemoryMgr, and BaseMemoryManager::m_IntraLayerMemoryMgr.

+
21 {
22  BOOST_ASSERT(alloc);
23  m_Allocator = std::move(alloc);
24 
27 }
std::shared_ptr< arm_compute::MemoryManagerOnDemand > CreateArmComputeMemoryManager(MemoryAffinity memoryAffinity)
+
std::shared_ptr< arm_compute::MemoryManagerOnDemand > m_InterLayerMemoryMgr
+
std::shared_ptr< arm_compute::MemoryManagerOnDemand > m_IntraLayerMemoryMgr
+
std::unique_ptr< arm_compute::IAllocator > m_Allocator
+
+
+
+

Member Function Documentation

+ +

◆ Acquire()

+ +
+
+ + + + + +
+ + + + + + + +
void Acquire ()
+
+overridevirtual
+
+ +

Implements IMemoryManager.

+ +

Definition at line 49 of file BaseMemoryManager.cpp.

+ +

References BaseMemoryManager::m_Allocator, BaseMemoryManager::m_InterLayerMemoryGroup, BaseMemoryManager::m_InterLayerMemoryMgr, and BaseMemoryManager::m_IntraLayerMemoryMgr.

+ +

Referenced by BaseMemoryManager::Release(), and BaseMemoryManager::~BaseMemoryManager().

+
50 {
51  static const size_t s_NumPools = 1;
52 
53  // Allocate memory pools for intra-layer memory manager
54  BOOST_ASSERT(m_IntraLayerMemoryMgr);
55  m_IntraLayerMemoryMgr->populate(*m_Allocator, s_NumPools);
56 
57  // Allocate memory pools for inter-layer memory manager
58  BOOST_ASSERT(m_InterLayerMemoryMgr);
59  m_InterLayerMemoryMgr->populate(*m_Allocator, s_NumPools);
60 
61  // Acquire inter-layer memory group. NOTE: This has to come after allocating the pools
62  BOOST_ASSERT(m_InterLayerMemoryGroup);
63  m_InterLayerMemoryGroup->acquire();
64 }
std::shared_ptr< arm_compute::MemoryManagerOnDemand > m_InterLayerMemoryMgr
+
std::shared_ptr< arm_compute::MemoryManagerOnDemand > m_IntraLayerMemoryMgr
+
std::shared_ptr< arm_compute::IMemoryGroup > m_InterLayerMemoryGroup
+
std::unique_ptr< arm_compute::IAllocator > m_Allocator
+
+
+
+ +

◆ CreateArmComputeMemoryManager()

+ +
+
+ + + + + +
+ + + + + + + + +
std::shared_ptr< arm_compute::MemoryManagerOnDemand > CreateArmComputeMemoryManager (MemoryAffinity memoryAffinity)
+
+protected
+
+ +

Definition at line 30 of file BaseMemoryManager.cpp.

+ +

References BaseMemoryManager::Buffer.

+ +

Referenced by BaseMemoryManager::BaseMemoryManager().

+
31 {
32  std::shared_ptr<arm_compute::ILifetimeManager> lifetimeManager = nullptr;
33 
34  if (memoryAffinity == MemoryAffinity::Buffer)
35  {
36  lifetimeManager = std::make_shared<arm_compute::BlobLifetimeManager>();
37  }
38  else
39  {
40  lifetimeManager = std::make_shared<arm_compute::OffsetLifetimeManager>();
41  }
42 
43  auto poolManager = std::make_shared<arm_compute::PoolManager>();
44  auto memoryManager = std::make_shared<arm_compute::MemoryManagerOnDemand>(lifetimeManager, poolManager);
45 
46  return memoryManager;
47 }
+
+
+
+ +

◆ CreateMemoryGroup()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual std::shared_ptr<arm_compute::IMemoryGroup> CreateMemoryGroup (const std::shared_ptr< arm_compute::MemoryManagerOnDemand > & memoryManager)
+
+protectedpure virtual
+
+
+ +

◆ GetInterLayerManager()

+ +
+
+ + + + + +
+ + + + + + + +
std::shared_ptr<arm_compute::MemoryManagerOnDemand>& GetInterLayerManager ()
+
+inline
+
+ +

Definition at line 42 of file BaseMemoryManager.hpp.

+ +

References BaseMemoryManager::m_InterLayerMemoryMgr.

+
42 { return m_InterLayerMemoryMgr; }
std::shared_ptr< arm_compute::MemoryManagerOnDemand > m_InterLayerMemoryMgr
+
+
+
+ +

◆ GetInterLayerMemoryGroup()

+ +
+
+ + + + + +
+ + + + + + + +
std::shared_ptr<arm_compute::IMemoryGroup>& GetInterLayerMemoryGroup ()
+
+inline
+
+ +

Definition at line 43 of file BaseMemoryManager.hpp.

+ +

References BaseMemoryManager::m_InterLayerMemoryGroup.

+
43 { return m_InterLayerMemoryGroup; }
std::shared_ptr< arm_compute::IMemoryGroup > m_InterLayerMemoryGroup
+
+
+
+ +

◆ GetIntraLayerManager()

+ +
+
+ + + + + +
+ + + + + + + +
std::shared_ptr<arm_compute::MemoryManagerOnDemand>& GetIntraLayerManager ()
+
+inline
+
+ +

Definition at line 41 of file BaseMemoryManager.hpp.

+ +

References BaseMemoryManager::m_IntraLayerMemoryMgr.

+
41 { return m_IntraLayerMemoryMgr; }
std::shared_ptr< arm_compute::MemoryManagerOnDemand > m_IntraLayerMemoryMgr
+
+
+
+ +

◆ Release()

+ +
+
+ + + + + +
+ + + + + + + +
void Release ()
+
+overridevirtual
+
+ +

Implements IMemoryManager.

+ +

Definition at line 66 of file BaseMemoryManager.cpp.

+ +

References BaseMemoryManager::Acquire(), BaseMemoryManager::m_InterLayerMemoryGroup, BaseMemoryManager::m_InterLayerMemoryMgr, and BaseMemoryManager::m_IntraLayerMemoryMgr.

+ +

Referenced by BaseMemoryManager::~BaseMemoryManager().

+
67 {
68  // Release inter-layer memory group. NOTE: This has to come before releasing the pools
69  BOOST_ASSERT(m_InterLayerMemoryGroup);
70  m_InterLayerMemoryGroup->release();
71 
72  // Release memory pools managed by intra-layer memory manager
73  BOOST_ASSERT(m_IntraLayerMemoryMgr);
74  m_IntraLayerMemoryMgr->clear();
75 
76  // Release memory pools managed by inter-layer memory manager
77  BOOST_ASSERT(m_InterLayerMemoryMgr);
78  m_InterLayerMemoryMgr->clear();
79 }
std::shared_ptr< arm_compute::MemoryManagerOnDemand > m_InterLayerMemoryMgr
+
std::shared_ptr< arm_compute::MemoryManagerOnDemand > m_IntraLayerMemoryMgr
+
std::shared_ptr< arm_compute::IMemoryGroup > m_InterLayerMemoryGroup
+
+
+
+

Member Data Documentation

+ +

◆ m_Allocator

+ +
+
+ + + + + +
+ + + + +
std::unique_ptr<arm_compute::IAllocator> m_Allocator
+
+protected
+
+ +

Definition at line 46 of file BaseMemoryManager.hpp.

+ +

Referenced by BaseMemoryManager::Acquire(), and BaseMemoryManager::BaseMemoryManager().

+ +
+
+ +

◆ m_InterLayerMemoryGroup

+ +
+
+ + + + + +
+ + + + +
std::shared_ptr<arm_compute::IMemoryGroup> m_InterLayerMemoryGroup
+
+protected
+
+
+ +

◆ m_InterLayerMemoryMgr

+ +
+
+ + + + + +
+ + + + +
std::shared_ptr<arm_compute::MemoryManagerOnDemand> m_InterLayerMemoryMgr
+
+protected
+
+
+ +

◆ m_IntraLayerMemoryMgr

+ +
+
+ + + + + +
+ + + + +
std::shared_ptr<arm_compute::MemoryManagerOnDemand> m_IntraLayerMemoryMgr
+
+protected
+
+
+
The documentation for this class was generated from the following files: +
+
+ + + + -- cgit v1.2.1