diff options
author | Aron Virginas-Tar <Aron.Virginas-Tar@arm.com> | 2018-10-31 11:04:01 +0000 |
---|---|---|
committer | David Beck <david.beck@arm.com> | 2018-11-08 11:34:44 +0000 |
commit | 60578950322491e44b4203fe085c3230ead19c7a (patch) | |
tree | e68bd71cb7b90d66d69a3de25561e32a13dd4e17 /src/backends/aclCommon/memory/BlobLifetimeManager.cpp | |
parent | db49a8880ba869627e884b5ba5245a3932de218d (diff) | |
download | armnn-60578950322491e44b4203fe085c3230ead19c7a.tar.gz |
IVGCVSW-1709: Clean up memory manager bodge
* Added quick workaround for the memory management errors in the
CL/Neon unit tests
Change-Id: I56250db462cdbdc1acc0a5824807d288fb0c1d11
Diffstat (limited to 'src/backends/aclCommon/memory/BlobLifetimeManager.cpp')
-rw-r--r-- | src/backends/aclCommon/memory/BlobLifetimeManager.cpp | 79 |
1 files changed, 0 insertions, 79 deletions
diff --git a/src/backends/aclCommon/memory/BlobLifetimeManager.cpp b/src/backends/aclCommon/memory/BlobLifetimeManager.cpp deleted file mode 100644 index 41100e945f..0000000000 --- a/src/backends/aclCommon/memory/BlobLifetimeManager.cpp +++ /dev/null @@ -1,79 +0,0 @@ -// -// Copyright © 2017 Arm Ltd. All rights reserved. -// SPDX-License-Identifier: MIT -// -#include "BlobLifetimeManager.hpp" -#include "BlobMemoryPool.hpp" - -#include <arm_compute/runtime/IMemoryGroup.h> - -#include "boost/assert.hpp" - -#include <algorithm> - -namespace armnn -{ - -BlobLifetimeManager::BlobLifetimeManager() - : m_BlobSizes() -{ -} - -arm_compute::MappingType BlobLifetimeManager::mapping_type() const -{ - return arm_compute::MappingType::BLOBS; -} - -void BlobLifetimeManager::update_blobs_and_mappings() -{ - using namespace arm_compute; - - BOOST_ASSERT(are_all_finalized()); - BOOST_ASSERT(_active_group); - - // Sort free blobs requirements in descending order. - _free_blobs.sort([](const Blob & ba, const Blob & bb) - { - return ba.max_size > bb.max_size; - }); - std::vector<size_t> groupSizes; - std::transform(std::begin(_free_blobs), std::end(_free_blobs), std::back_inserter(groupSizes), [](const Blob & b) - { - return b.max_size; - }); - - // Update blob sizes - size_t max_size = std::max(m_BlobSizes.size(), groupSizes.size()); - m_BlobSizes.resize(max_size, 0); - groupSizes.resize(max_size, 0); - std::transform(std::begin(m_BlobSizes), std::end(m_BlobSizes), std::begin(groupSizes), - std::begin(m_BlobSizes), [](size_t lhs, size_t rhs) - { - return std::max(lhs, rhs); - }); - - // Calculate group mappings - auto& groupMappings = _active_group->mappings(); - unsigned int blobIdx = 0; - - for(auto& freeBlob : _free_blobs) - { - for(auto& boundElementId : freeBlob.bound_elements) - { - BOOST_ASSERT(_active_elements.find(boundElementId) != std::end(_active_elements)); - - Element& boundElement = _active_elements[boundElementId]; - groupMappings[boundElement.handle] = blobIdx; - } - - ++blobIdx; - } -} - -std::unique_ptr<arm_compute::IMemoryPool> BlobLifetimeManager::create_pool(arm_compute::IAllocator* allocator) -{ - BOOST_ASSERT(allocator); - return std::make_unique<BlobMemoryPool>(allocator, m_BlobSizes); -} - -} // namespace armnn
\ No newline at end of file |