From b1aad4270fa8ad5c4aa62e27d564baf723b2cee5 Mon Sep 17 00:00:00 2001 From: Finn Williams Date: Thu, 28 Oct 2021 19:07:32 +0100 Subject: 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 Change-Id: I2216a724028312eb101b290df3f224177826b1a0 --- src/backends/backendsCommon/MemoryManager.hpp | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'src/backends/backendsCommon/MemoryManager.hpp') diff --git a/src/backends/backendsCommon/MemoryManager.hpp b/src/backends/backendsCommon/MemoryManager.hpp index cbd6fcf9bc..5113b231d3 100644 --- a/src/backends/backendsCommon/MemoryManager.hpp +++ b/src/backends/backendsCommon/MemoryManager.hpp @@ -2,6 +2,7 @@ // Copyright © 2021 Arm Ltd and Contributors. All rights reserved. // SPDX-License-Identifier: MIT // +#pragma once #include @@ -10,7 +11,7 @@ namespace armnn struct Allocator { /// Pointer to @ICustomAllocator. - ICustomAllocator* m_CustomAllocator{}; + std::shared_ptr m_CustomAllocator{}; /// Value which the size of each buffer (actual data size + padding) has to be a multiple of. size_t m_Alignment = 0 ; }; @@ -19,16 +20,16 @@ struct TensorMemory { /// Number of bytes the value is away from the @BufferStorage.m_Buffer. size_t m_Offset{}; - /// Pointer to the tensor value. - void* m_Data = nullptr; /// Identifier to be used by the @LoadedNetwork to order the tensors. unsigned int m_OutputSlotId{}; + /// Pointer to the tensor value. + void* m_Data = nullptr; }; struct BufferStorage { /// Vector of pointer to @TensorMemory. - std::vector m_TensorMemoryVector; + std::vector> m_TensorMemoryVector; /// Total size of the buffer. size_t m_BufferSize; /// Pointer to the first element of the buffer. @@ -43,7 +44,7 @@ public: /// @param[in] customAllocator - Pointer to @ICustomAllocator. /// @param[in] typeAlignment - Optional parameter. Value of which the size of each value has to be multiple of. void StoreMemToAllocate(std::vector bufferStorageVector, - ICustomAllocator* customAllocator, + std::shared_ptr customAllocator, size_t typeAlignment = 0); /// Allocate the amount of memory indicated by @m_BufferSize, and -- cgit v1.2.1