ArmNN
 21.02
NeonWorkloadFactoryHelper.hpp
Go to the documentation of this file.
1 //
2 // Copyright © 2017 Arm Ltd and Contributors. All rights reserved.
3 // SPDX-License-Identifier: MIT
4 //
5 
6 #pragma once
7 
12 
13 #include <neon/NeonBackend.hpp>
16 
17 namespace
18 {
19 
20 template<>
21 struct WorkloadFactoryHelper<armnn::NeonWorkloadFactory>
22 {
23  static armnn::IBackendInternal::IMemoryManagerSharedPtr GetMemoryManager()
24  {
25  armnn::NeonBackend backend;
26  return backend.CreateMemoryManager();
27  }
28 
29  static armnn::NeonWorkloadFactory GetFactory(
31  const armnn::ModelOptions& modelOptions = {})
32  {
33  armnn::NeonBackend backend;
34  return armnn::NeonWorkloadFactory(armnn::PolymorphicPointerDowncast<armnn::NeonMemoryManager>(memoryManager),
35  backend.CreateBackendSpecificModelContext(modelOptions));
36  }
37 
38  static armnn::NeonTensorHandleFactory GetTensorHandleFactory(
39  const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager = nullptr)
40  {
41 
43  armnn::PolymorphicPointerDowncast<armnn::NeonMemoryManager>(memoryManager));
44  }
45 };
46 
47 using NeonWorkloadFactoryHelper = WorkloadFactoryHelper<armnn::NeonWorkloadFactory>;
48 
49 } // anonymous namespace
std::vector< BackendOptions > ModelOptions
Copyright (c) 2021 ARM Limited and Contributors.
std::shared_ptr< IMemoryManager > IMemoryManagerSharedPtr
IBackendInternal::IBackendSpecificModelContextPtr CreateBackendSpecificModelContext(const ModelOptions &modelOptions) const override
IBackendInternal::IMemoryManagerUniquePtr CreateMemoryManager() const override
Definition: NeonBackend.cpp:48