diff options
author | Narumol Prangnawarat <narumol.prangnawarat@arm.com> | 2022-01-13 17:43:41 +0000 |
---|---|---|
committer | Jim Flynn <jim.flynn@arm.com> | 2022-01-25 10:22:16 +0000 |
commit | 7740045352a0d4e90011bcf472c069bd537cba72 (patch) | |
tree | 1b26c21d882f42b20257d96a5b723d6275a192e8 /src/backends/neon/NeonBackend.cpp | |
parent | d12b40792591309c627f215574aa082a5efd03ca (diff) | |
download | armnn-7740045352a0d4e90011bcf472c069bd537cba72.tar.gz |
IVGCVSW-6678 Register CopyAndImportFactoryPairs to NeonBackend and unit tests
Signed-off-by: Narumol Prangnawarat <narumol.prangnawarat@arm.com>
Change-Id: If5392020dfd0caa3f09ea2edbaf0f83ec36ab99b
Diffstat (limited to 'src/backends/neon/NeonBackend.cpp')
-rw-r--r-- | src/backends/neon/NeonBackend.cpp | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/src/backends/neon/NeonBackend.cpp b/src/backends/neon/NeonBackend.cpp index 54af14e30b..66547ad4df 100644 --- a/src/backends/neon/NeonBackend.cpp +++ b/src/backends/neon/NeonBackend.cpp @@ -74,7 +74,13 @@ IBackendInternal::IWorkloadFactoryPtr NeonBackend::CreateWorkloadFactory( BaseMemoryManager::MemoryAffinity::Offset); tensorHandleFactoryRegistry.RegisterMemoryManager(memoryManager); - tensorHandleFactoryRegistry.RegisterFactory(std::make_unique<NeonTensorHandleFactory>(memoryManager)); + + auto factory = std::make_unique<NeonTensorHandleFactory>(memoryManager); + // Register copy and import factory pair + tensorHandleFactoryRegistry.RegisterCopyAndImportFactoryPair(factory->GetId(), factory->GetId()); + // Register the factory + tensorHandleFactoryRegistry.RegisterFactory(std::move(factory)); + return std::make_unique<NeonWorkloadFactory>( PolymorphicPointerDowncast<NeonMemoryManager>(memoryManager)); @@ -87,7 +93,12 @@ IBackendInternal::IWorkloadFactoryPtr NeonBackend::CreateWorkloadFactory( BaseMemoryManager::MemoryAffinity::Offset); tensorHandleFactoryRegistry.RegisterMemoryManager(memoryManager); - tensorHandleFactoryRegistry.RegisterFactory(std::make_unique<NeonTensorHandleFactory>(memoryManager)); + + auto factory = std::make_unique<NeonTensorHandleFactory>(memoryManager); + // Register copy and import factory pair + tensorHandleFactoryRegistry.RegisterCopyAndImportFactoryPair(factory->GetId(), factory->GetId()); + // Register the factory + tensorHandleFactoryRegistry.RegisterFactory(std::move(factory)); return std::make_unique<NeonWorkloadFactory>( PolymorphicPointerDowncast<NeonMemoryManager>(memoryManager), CreateBackendSpecificModelContext(modelOptions)); @@ -424,7 +435,12 @@ void NeonBackend::RegisterTensorHandleFactories(class TensorHandleFactoryRegistr BaseMemoryManager::MemoryAffinity::Offset); registry.RegisterMemoryManager(memoryManager); - registry.RegisterFactory(std::make_unique<NeonTensorHandleFactory>(memoryManager)); + + auto factory = std::make_unique<NeonTensorHandleFactory>(memoryManager); + // Register copy and import factory pair + registry.RegisterCopyAndImportFactoryPair(factory->GetId(), factory->GetId()); + // Register the factory + registry.RegisterFactory(std::move(factory)); } std::unique_ptr<ICustomAllocator> NeonBackend::GetDefaultAllocator() const |