diff options
author | Finn Williams <finn.williams@arm.com> | 2021-10-28 19:07:32 +0100 |
---|---|---|
committer | Finn Williams <finn.williams@arm.com> | 2021-11-08 14:33:17 +0000 |
commit | b1aad4270fa8ad5c4aa62e27d564baf723b2cee5 (patch) | |
tree | 98b19ba85b50e2c730d5d2e3822cd2b1438bd149 /src/backends/neon/NeonTensorHandle.hpp | |
parent | 3f22d27f51c493e37b9da0692b6bf776f4430dcf (diff) | |
download | armnn-b1aad4270fa8ad5c4aa62e27d564baf723b2cee5.tar.gz |
IVGCVSW-6527 Support the new memory API in loaded network
* enable external memory management for neon and ref backends
* change m_TensorMemoryVector to hold shared pointers
* change input layer backend Id to match backend id of connected layer
Signed-off-by: Finn Williams <finn.williams@arm.com>
Change-Id: I2216a724028312eb101b290df3f224177826b1a0
Diffstat (limited to 'src/backends/neon/NeonTensorHandle.hpp')
-rw-r--r-- | src/backends/neon/NeonTensorHandle.hpp | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/src/backends/neon/NeonTensorHandle.hpp b/src/backends/neon/NeonTensorHandle.hpp index ae8aa5d8c7..dd4c2572f9 100644 --- a/src/backends/neon/NeonTensorHandle.hpp +++ b/src/backends/neon/NeonTensorHandle.hpp @@ -29,7 +29,8 @@ public: NeonTensorHandle(const TensorInfo& tensorInfo) : m_ImportFlags(static_cast<MemorySourceFlags>(MemorySource::Malloc)), m_Imported(false), - m_IsImportEnabled(false) + m_IsImportEnabled(false), + m_TypeAlignment(GetDataTypeSize(tensorInfo.GetDataType())) { armnn::armcomputetensorutils::BuildArmComputeTensor(m_Tensor, tensorInfo); } @@ -39,7 +40,9 @@ public: MemorySourceFlags importFlags = static_cast<MemorySourceFlags>(MemorySource::Malloc)) : m_ImportFlags(importFlags), m_Imported(false), - m_IsImportEnabled(false) + m_IsImportEnabled(false), + m_TypeAlignment(GetDataTypeSize(tensorInfo.GetDataType())) + { armnn::armcomputetensorutils::BuildArmComputeTensor(m_Tensor, tensorInfo, dataLayout); @@ -117,9 +120,7 @@ public: { if (source == MemorySource::Malloc && m_IsImportEnabled) { - // Checks the 16 byte memory alignment - constexpr uintptr_t alignment = sizeof(size_t); - if (reinterpret_cast<uintptr_t>(memory) % alignment) + if (reinterpret_cast<uintptr_t>(memory) % m_TypeAlignment) { throw MemoryImportException("NeonTensorHandle::Import Attempting to import unaligned memory"); } @@ -263,6 +264,7 @@ private: MemorySourceFlags m_ImportFlags; bool m_Imported; bool m_IsImportEnabled; + const uintptr_t m_TypeAlignment; }; class NeonSubTensorHandle : public IAclTensorHandle |