From d5d43d82c0137e08553e44345c609cdd1a7931c7 Mon Sep 17 00:00:00 2001 From: Nikhil Raj Date: Fri, 17 Jun 2022 13:24:58 +0100 Subject: Update Doxygen for 22.05 patch release * Pooling3D added to tfLite delegate * Available in tag 22.05.01 Signed-off-by: Nikhil Raj Change-Id: I8d605bba4e87d30baa2c6d7b338c78a4400dc021 --- 22.05.01/_tensor_handle_8cpp_source.xhtml | 144 ++++++++++++++++++++++++++++++ 1 file changed, 144 insertions(+) create mode 100644 22.05.01/_tensor_handle_8cpp_source.xhtml (limited to '22.05.01/_tensor_handle_8cpp_source.xhtml') diff --git a/22.05.01/_tensor_handle_8cpp_source.xhtml b/22.05.01/_tensor_handle_8cpp_source.xhtml new file mode 100644 index 0000000000..d7ba1cbf58 --- /dev/null +++ b/22.05.01/_tensor_handle_8cpp_source.xhtml @@ -0,0 +1,144 @@ + + + + + + + + + + + + + +ArmNN: src/backends/backendsCommon/TensorHandle.cpp Source File + + + + + + + + + + + + + + + + +
+
+ + + + ArmNN + + + +
+
+  22.05.01 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
TensorHandle.cpp
+
+
+Go to the documentation of this file.
1 //
2 // Copyright © 2021 Arm Ltd and Contributors. All rights reserved.
3 // SPDX-License-Identifier: MIT
4 //
5 #include <armnn/Exceptions.hpp>
7 
9 
10 #include <cstring>
11 
12 namespace armnn
13 {
14 
16 {
17  TensorShape shape(tensorInfo.GetShape());
18  auto size = GetDataTypeSize(tensorInfo.GetDataType());
19  auto runningSize = size;
20  std::vector<unsigned int> strides(shape.GetNumDimensions());
21  auto lastIdx = shape.GetNumDimensions()-1;
22  for (unsigned int i=0; i < lastIdx ; i++)
23  {
24  strides[lastIdx-i] = runningSize;
25  runningSize *= shape[lastIdx-i];
26  }
27  strides[0] = runningSize;
28  return TensorShape(shape.GetNumDimensions(), strides.data());
29 }
30 
32 : m_TensorInfo(tensorInfo)
33 , m_Memory(nullptr)
34 {
35 }
36 
37 template <>
38 const void* ConstTensorHandle::GetConstTensor<void>() const
39 {
40  return m_Memory;
41 }
42 
44 : ConstTensorHandle(tensorInfo)
45 , m_MutableMemory(nullptr)
46 {
47 }
48 
49 template <>
50 void* TensorHandle::GetTensor<void>() const
51 {
52  return m_MutableMemory;
53 }
54 
56 : TensorHandle(tensorInfo)
57 {
58 }
59 
61 : ScopedTensorHandle(tensor.GetInfo())
62 {
63  CopyFrom(tensor.GetMemoryArea(), tensor.GetNumBytes());
64 }
65 
67 : ScopedTensorHandle(tensorHandle.GetTensorInfo())
68 {
69  CopyFrom(tensorHandle.GetConstTensor<void>(), tensorHandle.GetTensorInfo().GetNumBytes());
70 }
71 
73 : TensorHandle(other.GetTensorInfo())
74 {
75  CopyFrom(other);
76 }
77 
79 {
80  ::operator delete(GetTensor<void>());
81  SetMemory(nullptr);
82  CopyFrom(other);
83  return *this;
84 }
85 
87 {
88  ::operator delete(GetTensor<void>());
89 }
90 
92 {
93  if (GetTensor<void>() == nullptr)
94  {
95  SetMemory(::operator new(GetTensorInfo().GetNumBytes()));
96  }
97  else
98  {
99  throw InvalidArgumentException("TensorHandle::Allocate Trying to allocate a TensorHandle"
100  "that already has allocated memory.");
101  }
102 }
103 
104 void ScopedTensorHandle::CopyOutTo(void* memory) const
105 {
106  memcpy(memory, GetTensor<void>(), GetTensorInfo().GetNumBytes());
107 }
108 
109 void ScopedTensorHandle::CopyInFrom(const void* memory)
110 {
111  memcpy(GetTensor<void>(), memory, GetTensorInfo().GetNumBytes());
112 }
113 
114 void ScopedTensorHandle::CopyFrom(const ScopedTensorHandle& other)
115 {
116  CopyFrom(other.GetTensor<void>(), other.GetTensorInfo().GetNumBytes());
117 }
118 
119 void ScopedTensorHandle::CopyFrom(const void* srcMemory, unsigned int numBytes)
120 {
121  ARMNN_ASSERT(GetTensor<void>() == nullptr);
122  ARMNN_ASSERT(GetTensorInfo().GetNumBytes() == numBytes);
123 
124  if (srcMemory)
125  {
126  Allocate();
127  memcpy(GetTensor<void>(), srcMemory, numBytes);
128  }
129 }
130 
132 {
133  throw InvalidArgumentException("PassthroughTensorHandle::Allocate() should never be called");
134 }
135 
137 {
138  throw InvalidArgumentException("ConstPassthroughTensorHandle::Allocate() should never be called");
139 }
140 
141 } // namespace armnn
+ +
ScopedTensorHandle & operator=(const ScopedTensorHandle &other)
+
virtual void Allocate() override
Indicate to the memory manager that this resource is no longer active.
+
const TensorShape & GetShape() const
Definition: Tensor.hpp:191
+
void SetMemory(void *mem)
+ +
TensorHandle(const TensorInfo &tensorInfo)
+
unsigned int GetNumBytes() const
Definition: Tensor.cpp:427
+
virtual void Allocate() override
Indicate to the memory manager that this resource is no longer active.
+
MemoryType GetMemoryArea() const
Definition: Tensor.hpp:305
+
ScopedTensorHandle(const TensorInfo &tensorInfo)
+
Copyright (c) 2021 ARM Limited and Contributors.
+ + + +
const TensorInfo & GetTensorInfo() const
+
ConstTensorHandle(const TensorInfo &tensorInfo)
+
DataType GetDataType() const
Definition: Tensor.hpp:198
+
A tensor defined by a TensorInfo (shape and data type) and an immutable backing store.
Definition: Tensor.hpp:327
+ +
#define ARMNN_ASSERT(COND)
Definition: Assert.hpp:14
+ + +
T * GetTensor() const
+
TensorShape GetUnpaddedTensorStrides(const TensorInfo &tensorInfo)
+ +
virtual void Allocate() override
Indicate to the memory manager that this resource is no longer active.
+
const T * GetConstTensor() const
+
unsigned int GetNumBytes() const
Definition: Tensor.hpp:302
+
constexpr unsigned int GetDataTypeSize(DataType dataType)
Definition: TypesUtils.hpp:151
+
+
+ + + + -- cgit v1.2.1