24.02
TosaRefMemoryManager.hpp
Go to the documentation of this file.
1
//
2
// Copyright © 2022 Arm Ltd and Contributors. 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
TosaRefMemoryManager
:
public
IMemoryManager
17
{
18
public
:
19
TosaRefMemoryManager
();
20
virtual
~TosaRefMemoryManager
();
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
TosaRefMemoryManager
(
const
TosaRefMemoryManager
&) =
delete
;
// Noncopyable
53
TosaRefMemoryManager
& operator=(
const
TosaRefMemoryManager
&) =
delete
;
// Noncopyable
54
55
std::forward_list<Pool> m_Pools;
56
std::vector<Pool*> m_FreePools;
57
};
58
59
}
armnn::TosaRefMemoryManager::TosaRefMemoryManager
TosaRefMemoryManager()
Definition:
TosaRefMemoryManager.cpp:14
armnn::TosaRefMemoryManager::~TosaRefMemoryManager
virtual ~TosaRefMemoryManager()
Definition:
TosaRefMemoryManager.cpp:17
armnn::TosaRefMemoryManager::Pool::Acquire
void Acquire()
Definition:
TosaRefMemoryManager.cpp:88
armnn::TosaRefMemoryManager::Pool
Definition:
TosaRefMemoryManager.hpp:33
armnn::TosaRefMemoryManager::Pool::GetPointer
void * GetPointer()
Definition:
TosaRefMemoryManager.cpp:76
armnn::TosaRefMemoryManager::Pool::Release
void Release()
Definition:
TosaRefMemoryManager.cpp:94
armnn::IMemoryManager
Definition:
IMemoryManager.hpp:12
armnn::TosaRefMemoryManager::Allocate
void Allocate(Pool *pool)
Definition:
TosaRefMemoryManager.cpp:36
armnn::TosaRefMemoryManager::Pool::~Pool
~Pool()
Definition:
TosaRefMemoryManager.cpp:68
armnn::TosaRefMemoryManager::Acquire
void Acquire() override
Definition:
TosaRefMemoryManager.cpp:47
armnn::TosaRefMemoryManager::Pool::Pool
Pool(unsigned int numBytes)
Definition:
TosaRefMemoryManager.cpp:63
armnn::TosaRefMemoryManager::Pool::Reserve
void Reserve(unsigned int numBytes)
Definition:
TosaRefMemoryManager.cpp:82
armnn::TosaRefMemoryManager::GetPointer
void * GetPointer(Pool *pool)
Definition:
TosaRefMemoryManager.cpp:42
armnn::TosaRefMemoryManager
Definition:
TosaRefMemoryManager.hpp:16
armnn::TosaRefMemoryManager::Manage
Pool * Manage(unsigned int numBytes)
Definition:
TosaRefMemoryManager.cpp:20
armnn
Copyright (c) 2021 ARM Limited and Contributors.
Definition:
01_00_quick_start.dox:6
armnn::TosaRefMemoryManager::Release
void Release() override
Definition:
TosaRefMemoryManager.cpp:55
IMemoryManager.hpp
src
backends
tosaReference
TosaRefMemoryManager.hpp
Generated on Wed Feb 14 2024 16:36:17 for Arm NN by
1.8.17