24.02
RefMemoryManager.hpp
Go to the documentation of this file.
1
//
2
// Copyright © 2017 Arm Ltd. All rights reserved.
3
// SPDX-License-Identifier: MIT
4
//
5
#pragma once
6
7
#include <
armnn/backends/IMemoryManager.hpp
>
8
9
#include <forward_list>
10
#include <vector>
11
12
namespace
armnn
13
{
14
15
// An implementation of IMemoryManager to be used with RefTensorHandle
16
class
RefMemoryManager
:
public
IMemoryManager
17
{
18
public
:
19
RefMemoryManager
();
20
virtual
~RefMemoryManager
();
21
22
class
Pool
;
23
24
Pool
*
Manage
(
unsigned
int
numBytes);
25
26
void
Allocate
(
Pool
*pool);
27
28
void
*
GetPointer
(
Pool
*pool);
29
30
void
Acquire
()
override
;
31
void
Release
()
override
;
32
33
class
Pool
34
{
35
public
:
36
Pool
(
unsigned
int
numBytes);
37
~Pool
();
38
39
void
Acquire
();
40
void
Release
();
41
42
void
*
GetPointer
();
43
44
void
Reserve
(
unsigned
int
numBytes);
45
46
private
:
47
unsigned
int
m_Size;
48
void
* m_Pointer;
49
};
50
51
private
:
52
RefMemoryManager
(
const
RefMemoryManager
&) =
delete
;
// Noncopyable
53
RefMemoryManager
& operator=(
const
RefMemoryManager
&) =
delete
;
// Noncopyable
54
55
std::forward_list<Pool> m_Pools;
56
std::vector<Pool*> m_FreePools;
57
};
58
59
}
armnn::RefMemoryManager::RefMemoryManager
RefMemoryManager()
Definition:
RefMemoryManager.cpp:14
armnn::RefMemoryManager::Release
void Release() override
Definition:
RefMemoryManager.cpp:55
armnn::RefMemoryManager::GetPointer
void * GetPointer(Pool *pool)
Definition:
RefMemoryManager.cpp:42
armnn::RefMemoryManager::Manage
Pool * Manage(unsigned int numBytes)
Definition:
RefMemoryManager.cpp:20
armnn::RefMemoryManager::Pool::Acquire
void Acquire()
Definition:
RefMemoryManager.cpp:88
armnn::RefMemoryManager::Pool::Release
void Release()
Definition:
RefMemoryManager.cpp:94
armnn::RefMemoryManager::Acquire
void Acquire() override
Definition:
RefMemoryManager.cpp:47
armnn::RefMemoryManager::Pool
Definition:
RefMemoryManager.hpp:33
armnn::RefMemoryManager::Pool::Pool
Pool(unsigned int numBytes)
Definition:
RefMemoryManager.cpp:63
armnn::IMemoryManager
Definition:
IMemoryManager.hpp:12
armnn::RefMemoryManager
Definition:
RefMemoryManager.hpp:16
armnn::RefMemoryManager::Pool::GetPointer
void * GetPointer()
Definition:
RefMemoryManager.cpp:76
armnn::RefMemoryManager::Pool::~Pool
~Pool()
Definition:
RefMemoryManager.cpp:68
armnn::RefMemoryManager::Allocate
void Allocate(Pool *pool)
Definition:
RefMemoryManager.cpp:36
armnn
Copyright (c) 2021 ARM Limited and Contributors.
Definition:
01_00_quick_start.dox:6
armnn::RefMemoryManager::Pool::Reserve
void Reserve(unsigned int numBytes)
Definition:
RefMemoryManager.cpp:82
armnn::RefMemoryManager::~RefMemoryManager
virtual ~RefMemoryManager()
Definition:
RefMemoryManager.cpp:17
IMemoryManager.hpp
src
backends
reference
RefMemoryManager.hpp
Generated on Wed Feb 14 2024 16:36:16 for Arm NN by
1.8.17