// // Copyright © 2017 Arm Ltd. All rights reserved. // See LICENSE file in the project root for full license information. // #pragma once #include "WorkloadFactory.hpp" #if ARMCOMPUTENEON_ENABLED || ARMCOMPUTECL_ENABLED #include "arm_compute/runtime/IAllocator.h" #include "arm_compute/runtime/BlobLifetimeManager.h" #include "arm_compute/runtime/MemoryManagerOnDemand.h" #include "arm_compute/runtime/PoolManager.h" #include #endif namespace armnn { // ARM Compute Base Memory Manager class AclBaseMemoryManager { public: AclBaseMemoryManager() { } virtual ~AclBaseMemoryManager() { } #if ARMCOMPUTENEON_ENABLED || ARMCOMPUTECL_ENABLED AclBaseMemoryManager(std::unique_ptr alloc); void Finalize(); std::shared_ptr& Get() { return m_IntraLayerMemoryMgr; } protected: mutable std::unique_ptr m_Allocator; mutable std::shared_ptr m_IntraLayerLifetimeMgr; mutable std::shared_ptr m_IntraLayerPoolMgr; mutable std::shared_ptr m_IntraLayerMemoryMgr; #endif }; } //namespace armnn