ArmNN
 25.11
Loading...
Searching...
No Matches
SampleTensorHandle.hpp
Go to the documentation of this file.
1//
2// Copyright © 2020 Arm Ltd. All rights reserved.
3// SPDX-License-Identifier: MIT
4//
5#pragma once
6
8
10
11namespace sdb // sample dynamic backend
12{
13
14// An implementation of ITensorHandle with simple "bump the pointer" memory-management behaviour
16{
17public:
18 SampleTensorHandle(const armnn::TensorInfo& tensorInfo, std::shared_ptr<SampleMemoryManager> &memoryManager);
19
21
23
24 virtual void Manage() override;
25
26 virtual void Allocate() override;
27
28 virtual ITensorHandle* GetParent() const override
29 {
30 return nullptr;
31 }
32
33 virtual const void* Map(bool /* blocking = true */) const override;
34 using ITensorHandle::Map;
35
36 virtual void Unmap() const override
37 {}
38
40 {
41 return GetUnpaddedTensorStrides(m_TensorInfo);
42 }
43
45 {
46 return m_TensorInfo.GetShape();
47 }
48
50 {
51 return m_TensorInfo;
52 }
53
55 {
56 return m_ImportFlags;
57 }
58
59 virtual bool Import(void* memory, armnn::MemorySource source) override;
60
61private:
62 // Only used for testing
63 void CopyOutTo(void*) const override;
64 void CopyInFrom(const void*) override;
65
66 void* GetPointer() const;
67
68 SampleTensorHandle(const SampleTensorHandle& other) = delete; // noncopyable
69 SampleTensorHandle& operator=(const SampleTensorHandle& other) = delete; //noncopyable
70
71 armnn::TensorInfo m_TensorInfo;
72
73 std::shared_ptr<SampleMemoryManager> m_MemoryManager;
75 mutable void *m_UnmanagedMemory;
76 armnn::MemorySourceFlags m_ImportFlags;
77 bool m_Imported;
78};
79
80} // namespace sdb
virtual armnn::MemorySourceFlags GetImportFlags() const override
Get flags describing supported import sources.
virtual ITensorHandle * GetParent() const override
Get the parent tensor if this is a subtensor.
armnn::TensorShape GetShape() const override
Get the number of elements for each dimension ordered from slowest iterating dimension to fastest ite...
virtual void Allocate() override
Indicate to the memory manager that this resource is no longer active.
virtual void Unmap() const override
Unmap the tensor data.
virtual bool Import(void *memory, armnn::MemorySource source) override
Import externally allocated memory.
armnn::TensorShape GetStrides() const override
Get the strides for each dimension ordered from largest to smallest where the smallest value is the s...
virtual void Manage() override
Indicate to the memory manager that this resource is active.
const armnn::TensorInfo & GetTensorInfo() const
virtual const void * Map(bool) const override
Map the tensor data for access.
SampleTensorHandle(const armnn::TensorInfo &tensorInfo, std::shared_ptr< SampleMemoryManager > &memoryManager)
MemorySource
Define the Memory Source to reduce copies.
Definition Types.hpp:246
unsigned int MemorySourceFlags