diff options
author | Narumol Prangnawarat <narumol.prangnawarat@arm.com> | 2019-08-14 12:25:50 +0100 |
---|---|---|
committer | Narumol Prangnawarat <narumol.prangnawarat@arm.com> | 2019-08-14 14:38:24 +0000 |
commit | 4e3e818e1ea73544f3aec4e2ac2621a1c3380b54 (patch) | |
tree | 7a4cbdc3d95a1a2743194b7fdc61b81989f3ce2c /src/backends/neon/NeonBackend.cpp | |
parent | 4992c344c888774da0e5cffd4b607828bf46b74f (diff) | |
download | armnn-4e3e818e1ea73544f3aec4e2ac2621a1c3380b54.tar.gz |
IVGCVSW-3622 Add Neon TensorHandleFactory
Signed-off-by: James Conroy <james.conroy@arm.com>
Signed-off-by: Narumol Prangnawarat <narumol.prangnawarat@arm.com>
Change-Id: I9f24f7d97c1e7d37ee7d58ff85c6c3f8496e52ec
Diffstat (limited to 'src/backends/neon/NeonBackend.cpp')
-rw-r--r-- | src/backends/neon/NeonBackend.cpp | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/src/backends/neon/NeonBackend.cpp b/src/backends/neon/NeonBackend.cpp index d7be844c21..f86509cbe6 100644 --- a/src/backends/neon/NeonBackend.cpp +++ b/src/backends/neon/NeonBackend.cpp @@ -7,6 +7,7 @@ #include "NeonBackendId.hpp" #include "NeonWorkloadFactory.hpp" #include "NeonLayerSupport.hpp" +#include "NeonTensorHandleFactory.hpp" #include <aclCommon/BaseMemoryManager.hpp> @@ -58,6 +59,17 @@ IBackendInternal::IWorkloadFactoryPtr NeonBackend::CreateWorkloadFactory( boost::polymorphic_pointer_downcast<NeonMemoryManager>(memoryManager)); } +IBackendInternal::IWorkloadFactoryPtr NeonBackend::CreateWorkloadFactory( + class TensorHandleFactoryRegistry& tensorHandleFactoryRegistry) const +{ + auto memoryManager = std::make_shared<NeonMemoryManager>(std::make_unique<arm_compute::Allocator>(), + BaseMemoryManager::MemoryAffinity::Offset); + + tensorHandleFactoryRegistry.RegisterMemoryManager(memoryManager); + return std::make_unique<NeonWorkloadFactory>( + boost::polymorphic_pointer_downcast<NeonMemoryManager>(memoryManager)); +} + IBackendInternal::IBackendContextPtr NeonBackend::CreateBackendContext(const IRuntime::CreationOptions&) const { return IBackendContextPtr{}; @@ -83,4 +95,18 @@ OptimizationViews NeonBackend::OptimizeSubgraphView(const SubgraphView& subgraph return optimizationViews; } +std::vector<ITensorHandleFactory::FactoryId> NeonBackend::GetHandleFactoryPreferences() const +{ + return std::vector<ITensorHandleFactory::FactoryId>() = {"Arm/Neon/TensorHandleFactory"}; +} + +void NeonBackend::RegisterTensorHandleFactories(class TensorHandleFactoryRegistry& registry) +{ + auto memoryManager = std::make_shared<NeonMemoryManager>(std::make_unique<arm_compute::Allocator>(), + BaseMemoryManager::MemoryAffinity::Offset); + + registry.RegisterMemoryManager(memoryManager); + registry.RegisterFactory(std::make_unique<NeonTensorHandleFactory>(memoryManager, "Arm/Neon/TensorHandleFactory")); +} + } // namespace armnn |