diff options
Diffstat (limited to 'src/backends/aclCommon')
-rw-r--r-- | src/backends/aclCommon/BaseMemoryManager.cpp | 14 | ||||
-rw-r--r-- | src/backends/aclCommon/BaseMemoryManager.hpp | 34 | ||||
-rw-r--r-- | src/backends/aclCommon/common.cmake | 4 |
3 files changed, 38 insertions, 14 deletions
diff --git a/src/backends/aclCommon/BaseMemoryManager.cpp b/src/backends/aclCommon/BaseMemoryManager.cpp index c60a4a04ae..e70d7f851d 100644 --- a/src/backends/aclCommon/BaseMemoryManager.cpp +++ b/src/backends/aclCommon/BaseMemoryManager.cpp @@ -1,10 +1,10 @@ // -// Copyright © 2017 Arm Ltd. All rights reserved. +// Copyright © 2017, 2023 Arm Ltd and Contributors. All rights reserved. // SPDX-License-Identifier: MIT // #include "BaseMemoryManager.hpp" -#if defined(ARMCOMPUTENEON_ENABLED) || defined(ARMCOMPUTECL_ENABLED) +#if defined(ARMCOMPUTENEON_ENABLED) || defined(ARMCOMPUTECL_ENABLED) || defined(ARMCOMPUTEGPUFSA_ENABLED) #include "arm_compute/runtime/BlobLifetimeManager.h" #include "arm_compute/runtime/PoolManager.h" #include "arm_compute/runtime/OffsetLifetimeManager.h" @@ -14,7 +14,7 @@ namespace armnn { -#if defined(ARMCOMPUTENEON_ENABLED) || defined(ARMCOMPUTECL_ENABLED) +#if defined(ARMCOMPUTENEON_ENABLED) || defined(ARMCOMPUTECL_ENABLED) || defined(ARMCOMPUTEGPUFSA_ENABLED) BaseMemoryManager::BaseMemoryManager(std::shared_ptr<arm_compute::IAllocator> alloc, MemoryAffinity memoryAffinity) { @@ -104,4 +104,12 @@ ClMemoryManager::CreateMemoryGroup(const std::shared_ptr<arm_compute::MemoryMana } #endif +#if defined(ARMCOMPUTEGPUFSA_ENABLED) +std::shared_ptr<arm_compute::IMemoryGroup> +GpuFsaMemoryManager::CreateMemoryGroup(const std::shared_ptr<arm_compute::MemoryManagerOnDemand>& memoryManager) +{ + return std::make_shared<arm_compute::MemoryGroup>(memoryManager); } +#endif + +}
\ No newline at end of file diff --git a/src/backends/aclCommon/BaseMemoryManager.hpp b/src/backends/aclCommon/BaseMemoryManager.hpp index af099f900a..c18c4830a0 100644 --- a/src/backends/aclCommon/BaseMemoryManager.hpp +++ b/src/backends/aclCommon/BaseMemoryManager.hpp @@ -1,5 +1,5 @@ // -// Copyright © 2017 Arm Ltd. All rights reserved. +// Copyright © 2017, 2023 Arm Ltd and Contributors. All rights reserved. // SPDX-License-Identifier: MIT // #pragma once @@ -7,17 +7,13 @@ #include <armnn/backends/IMemoryManager.hpp> #include <armnn/backends/WorkloadFactory.hpp> -#if defined(ARMCOMPUTENEON_ENABLED) || defined(ARMCOMPUTECL_ENABLED) -#include <arm_compute/runtime/MemoryGroup.h> -#endif - -#if defined(ARMCOMPUTENEON_ENABLED) || defined(ARMCOMPUTECL_ENABLED) +#if defined(ARMCOMPUTENEON_ENABLED) || defined(ARMCOMPUTECL_ENABLED) || defined(ARMCOMPUTEGPUFSA_ENABLED) #include <arm_compute/runtime/IAllocator.h> #include <arm_compute/runtime/IMemoryGroup.h> #include <arm_compute/runtime/MemoryManagerOnDemand.h> #endif -#if defined(ARMCOMPUTECL_ENABLED) +#if defined(ARMCOMPUTECL_ENABLED) || defined(ARMCOMPUTEGPUFSA_ENABLED) #include <arm_compute/runtime/CL/CLTensorAllocator.h> #endif @@ -39,7 +35,7 @@ public: void Acquire() override; void Release() override; -#if defined(ARMCOMPUTENEON_ENABLED) || defined(ARMCOMPUTECL_ENABLED) +#if defined(ARMCOMPUTENEON_ENABLED) || defined(ARMCOMPUTECL_ENABLED) || defined(ARMCOMPUTEGPUFSA_ENABLED) BaseMemoryManager(std::shared_ptr<arm_compute::IAllocator> alloc, MemoryAffinity memoryAffinity); std::shared_ptr<arm_compute::MemoryManagerOnDemand>& GetIntraLayerManager() { return m_IntraLayerMemoryMgr; } @@ -98,4 +94,24 @@ protected: }; #endif -} //namespace armnn +#if defined(ARMCOMPUTEGPUFSA_ENABLED) +class GpuFsaMemoryManager : public BaseMemoryManager +{ +public: + GpuFsaMemoryManager() {} + virtual ~GpuFsaMemoryManager() {} + + GpuFsaMemoryManager(std::shared_ptr<arm_compute::IAllocator> alloc) + : BaseMemoryManager(std::move(alloc), MemoryAffinity::Buffer) + { + arm_compute::CLTensorAllocator::set_global_allocator(alloc.get()); + m_InterLayerMemoryGroup = CreateMemoryGroup(m_InterLayerMemoryMgr); + } + +protected: + std::shared_ptr<arm_compute::IMemoryGroup> + CreateMemoryGroup(const std::shared_ptr<arm_compute::MemoryManagerOnDemand>& memoryManager) override; +}; +#endif + +} // namespace armnn diff --git a/src/backends/aclCommon/common.cmake b/src/backends/aclCommon/common.cmake index 89be236a7f..1ea14951a6 100644 --- a/src/backends/aclCommon/common.cmake +++ b/src/backends/aclCommon/common.cmake @@ -1,9 +1,9 @@ # -# Copyright © 2017 Arm Ltd. All rights reserved. +# Copyright © 2017, 2023 Arm Ltd and Contributors. All rights reserved. # SPDX-License-Identifier: MIT # -if(ARMCOMPUTENEON OR ARMCOMPUTECL) +if(ARMCOMPUTENEON OR ARMCOMPUTECL OR ARMCOMPUTEGPUFSA) add_subdirectory(${PROJECT_SOURCE_DIR}/src/backends/aclCommon) list(APPEND armnnLibraries armnnAclCommon) list(APPEND armnnUnitTestLibraries armnnAclCommonUnitTests) |