From 6940dd720ebb6b3d1df8ca203ab696daefe58189 Mon Sep 17 00:00:00 2001 From: Jim Flynn Date: Fri, 20 Mar 2020 12:25:56 +0000 Subject: renamed Documentation folder 20.02 and added .nojekyll file Signed-off-by: Jim Flynn --- 20.02/classarmnn_1_1_cl_backend.xhtml | 694 ++++++++++++++++++++++++++++++++++ 1 file changed, 694 insertions(+) create mode 100644 20.02/classarmnn_1_1_cl_backend.xhtml (limited to '20.02/classarmnn_1_1_cl_backend.xhtml') diff --git a/20.02/classarmnn_1_1_cl_backend.xhtml b/20.02/classarmnn_1_1_cl_backend.xhtml new file mode 100644 index 0000000000..46c47a2f48 --- /dev/null +++ b/20.02/classarmnn_1_1_cl_backend.xhtml @@ -0,0 +1,694 @@ + + + + + + + + + + + + + +ArmNN: ClBackend Class Reference + + + + + + + + + + + + + + + + +
+
+ + + + ArmNN + + + +
+
+  20.02 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ + +
+ +

#include <ClBackend.hpp>

+
+Inheritance diagram for ClBackend:
+
+
+ + +IBackendInternal +IBackend + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 ClBackend ()=default
 
 ~ClBackend ()=default
 
const BackendIdGetId () const override
 
IBackendInternal::IMemoryManagerUniquePtr CreateMemoryManager () const override
 
IBackendInternal::IWorkloadFactoryPtr CreateWorkloadFactory (const IBackendInternal::IMemoryManagerSharedPtr &memoryManager=nullptr) const override
 
IBackendInternal::IWorkloadFactoryPtr CreateWorkloadFactory (TensorHandleFactoryRegistry &registry) const override
 
std::vector< ITensorHandleFactory::FactoryIdGetHandleFactoryPreferences () const override
 (Optional) Returns a vector of supported TensorHandleFactory ids in preference order. More...
 
void RegisterTensorHandleFactories (TensorHandleFactoryRegistry &registry) override
 (Optional) Register TensorHandleFactories Either this method or CreateMemoryManager() and IWorkloadFactory::CreateTensor()/IWorkloadFactory::CreateSubtensor() methods must be implemented. More...
 
IBackendInternal::IBackendContextPtr CreateBackendContext (const IRuntime::CreationOptions &) const override
 Create the runtime context of the backend. More...
 
IBackendInternal::IBackendProfilingContextPtr CreateBackendProfilingContext (const IRuntime::CreationOptions &, IBackendProfilingPtr &backendProfiling) override
 Create context specifically used for profiling interaction from backends. More...
 
IBackendInternal::Optimizations GetOptimizations () const override
 
IBackendInternal::ILayerSupportSharedPtr GetLayerSupport () const override
 
OptimizationViews OptimizeSubgraphView (const SubgraphView &subgraph) const override
 
- Public Member Functions inherited from IBackendInternal
 ~IBackendInternal () override=default
 Allow backends created by the factory function to be destroyed through IBackendInternal. More...
 
virtual ISubGraphConverterPtr CreateSubGraphConverter (const std::shared_ptr< SubGraph > &subGraph) const
 
virtual SubGraphUniquePtr OptimizeSubGraph (const SubGraph &subGraph, bool &optimizationAttempted) const
 
bool SupportsTensorAllocatorAPI () const
 
ITensorHandleFactory::FactoryId GetBackwardCompatibleFavoriteHandleFactory ()
 
+ + + + + + + +

+Static Public Member Functions

static const BackendIdGetIdStatic ()
 
- Static Public Member Functions inherited from IBackendInternal
static constexpr BackendVersion GetApiVersion ()
 Returns the version of the Backend API. More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Additional Inherited Members

- Public Types inherited from IBackendInternal
using IWorkloadFactoryPtr = std::unique_ptr< IWorkloadFactory >
 
using IBackendContextPtr = std::unique_ptr< IBackendContext >
 
using IBackendProfilingContextPtr = std::shared_ptr< armnn::profiling::IBackendProfilingContext >
 This is the bridge between backend and backend profiling we'll keep it in the backend namespace. More...
 
using IBackendProfilingPtr = std::unique_ptr< armnn::profiling::IBackendProfiling >
 
using OptimizationPtr = std::unique_ptr< Optimization >
 
using Optimizations = std::vector< OptimizationPtr >
 
using ILayerSupportSharedPtr = std::shared_ptr< ILayerSupport >
 
using IMemoryManagerUniquePtr = std::unique_ptr< IMemoryManager >
 
using IMemoryManagerSharedPtr = std::shared_ptr< IMemoryManager >
 
using GraphUniquePtr = std::unique_ptr< Graph >
 
using SubgraphViewUniquePtr = std::unique_ptr< SubgraphView >
 
using supported = std::unique_ptr< ISubGraphConverter >
 
using instead = std::unique_ptr< SubGraph >
 
- Protected Member Functions inherited from IBackendInternal
 IBackendInternal ()=default
 Creation must be done through a specific backend interface. More...
 
- Protected Member Functions inherited from IBackend
 IBackend ()
 
virtual ~IBackend ()
 
+

Detailed Description

+
+

Definition at line 12 of file ClBackend.hpp.

+

Constructor & Destructor Documentation

+ +

◆ ClBackend()

+ +
+
+ + + + + +
+ + + + + + + +
ClBackend ()
+
+default
+
+ +
+
+ +

◆ ~ClBackend()

+ +
+
+ + + + + +
+ + + + + + + +
~ClBackend ()
+
+default
+
+ +
+
+

Member Function Documentation

+ +

◆ CreateBackendContext()

+ +
+
+ + + + + +
+ + + + + + + + +
IBackendInternal::IBackendContextPtr CreateBackendContext (const IRuntime::CreationOptions) const
+
+overridevirtual
+
+ +

Create the runtime context of the backend.

+

Implementations may return a default-constructed IBackendContextPtr if no context is needed at runtime. Implementations must throw BackendUnavailableException if the backend cannot be used (for example, necessary accelerator hardware is not present). The default implementation always returns a default-constructed pointer.

+ +

Reimplemented from IBackendInternal.

+ +

Definition at line 72 of file ClBackend.cpp.

+ +

Referenced by ClBackend::GetId().

+
73 {
74  return IBackendContextPtr{new ClBackendContext{options}};
75 }
armnn::Runtime::CreationOptions::ExternalProfilingOptions options
+
std::unique_ptr< IBackendContext > IBackendContextPtr
+
+
+
+ +

◆ CreateBackendProfilingContext()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
IBackendInternal::IBackendProfilingContextPtr CreateBackendProfilingContext (const IRuntime::CreationOptionscreationOptions,
IBackendProfilingPtrbackendProfiling 
)
+
+overridevirtual
+
+ +

Create context specifically used for profiling interaction from backends.

+ +

Reimplemented from IBackendInternal.

+ +

Definition at line 77 of file ClBackend.cpp.

+ +

Referenced by ClBackend::GetId().

+
79 {
81 }
std::shared_ptr< armnn::profiling::IBackendProfilingContext > IBackendProfilingContextPtr
This is the bridge between backend and backend profiling we&#39;ll keep it in the backend namespace...
+
+
+
+ +

◆ CreateMemoryManager()

+ +
+
+ + + + + +
+ + + + + + + +
IBackendInternal::IMemoryManagerUniquePtr CreateMemoryManager () const
+
+overridevirtual
+
+ +

Reimplemented from IBackendInternal.

+ +

Definition at line 35 of file ClBackend.cpp.

+ +

Referenced by ClBackend::GetId().

+
36 {
37  return std::make_unique<ClMemoryManager>(std::make_unique<arm_compute::CLBufferAllocator>());
38 }
+
+
+ +

◆ CreateWorkloadFactory() [1/2]

+ +
+
+ + + + + +
+ + + + + + + + +
IBackendInternal::IWorkloadFactoryPtr CreateWorkloadFactory (const IBackendInternal::IMemoryManagerSharedPtrmemoryManager = nullptr) const
+
+overridevirtual
+
+ +

Implements IBackendInternal.

+ +

Definition at line 40 of file ClBackend.cpp.

+ +

Referenced by ClBackend::GetId().

+
42 {
43  return std::make_unique<ClWorkloadFactory>(
44  boost::polymorphic_pointer_downcast<ClMemoryManager>(memoryManager));
45 }
+
+
+ +

◆ CreateWorkloadFactory() [2/2]

+ +
+
+ + + + + +
+ + + + + + + + +
IBackendInternal::IWorkloadFactoryPtr CreateWorkloadFactory (TensorHandleFactoryRegistryregistry) const
+
+overridevirtual
+
+ +

Reimplemented from IBackendInternal.

+ +

Definition at line 47 of file ClBackend.cpp.

+ +

References TensorHandleFactoryRegistry::RegisterMemoryManager().

+
49 {
50  auto memoryManager = std::make_shared<ClMemoryManager>(std::make_unique<arm_compute::CLBufferAllocator>());
51 
52  registry.RegisterMemoryManager(memoryManager);
53 
54  return std::make_unique<ClWorkloadFactory>(
55  boost::polymorphic_pointer_downcast<ClMemoryManager>(memoryManager));
56 }
+
+
+ +

◆ GetHandleFactoryPreferences()

+ +
+
+ + + + + +
+ + + + + + + +
std::vector< ITensorHandleFactory::FactoryId > GetHandleFactoryPreferences () const
+
+overridevirtual
+
+ +

(Optional) Returns a vector of supported TensorHandleFactory ids in preference order.

+ +

Reimplemented from IBackendInternal.

+ +

Definition at line 58 of file ClBackend.cpp.

+ +

References ClTensorHandleFactory::GetIdStatic().

+ +

Referenced by ClBackend::GetId().

+
59 {
60  return std::vector<ITensorHandleFactory::FactoryId> {ClTensorHandleFactory::GetIdStatic()};
61 }
static const FactoryId & GetIdStatic()
+
+
+
+ +

◆ GetId()

+ + + +

◆ GetIdStatic()

+ +
+
+ + + + + +
+ + + + + + + +
const BackendId & GetIdStatic ()
+
+static
+
+ +

Definition at line 29 of file ClBackend.cpp.

+ +

References armnn::ClBackendId().

+ +

Referenced by ClBackend::GetId().

+
30 {
31  static const BackendId s_Id{ClBackendId()};
32  return s_Id;
33 }
constexpr const char * ClBackendId()
Definition: ClBackendId.hpp:10
+
+
+
+ +

◆ GetLayerSupport()

+ +
+
+ + + + + +
+ + + + + + + +
IBackendInternal::ILayerSupportSharedPtr GetLayerSupport () const
+
+overridevirtual
+
+ +

Implements IBackendInternal.

+ +

Definition at line 88 of file ClBackend.cpp.

+ +

Referenced by ClBackend::GetId().

+
89 {
90  static ILayerSupportSharedPtr layerSupport{new ClLayerSupport};
91  return layerSupport;
92 }
std::shared_ptr< ILayerSupport > ILayerSupportSharedPtr
+
+
+
+ +

◆ GetOptimizations()

+ +
+
+ + + + + +
+ + + + + + + +
IBackendInternal::Optimizations GetOptimizations () const
+
+overridevirtual
+
+ +

Reimplemented from IBackendInternal.

+ +

Definition at line 83 of file ClBackend.cpp.

+ +

Referenced by ClBackend::GetId().

+
84 {
85  return Optimizations{};
86 }
std::vector< OptimizationPtr > Optimizations
+
+
+
+ +

◆ OptimizeSubgraphView()

+ +
+
+ + + + + +
+ + + + + + + + +
OptimizationViews OptimizeSubgraphView (const SubgraphViewsubgraph) const
+
+overridevirtual
+
+ +

Reimplemented from IBackendInternal.

+ +

Definition at line 94 of file ClBackend.cpp.

+ +

References OptimizationViews::AddUntouchedSubgraph().

+ +

Referenced by ClBackend::GetId().

+
95 {
96  OptimizationViews optimizationViews;
97 
98  optimizationViews.AddUntouchedSubgraph(SubgraphView(subgraph));
99 
100  return optimizationViews;
101 }
+
+
+ +

◆ RegisterTensorHandleFactories()

+ +
+
+ + + + + +
+ + + + + + + + +
void RegisterTensorHandleFactories (TensorHandleFactoryRegistry)
+
+overridevirtual
+
+ +

(Optional) Register TensorHandleFactories Either this method or CreateMemoryManager() and IWorkloadFactory::CreateTensor()/IWorkloadFactory::CreateSubtensor() methods must be implemented.

+ +

Reimplemented from IBackendInternal.

+ +

Definition at line 63 of file ClBackend.cpp.

+ +

References TensorHandleFactoryRegistry::RegisterFactory(), and TensorHandleFactoryRegistry::RegisterMemoryManager().

+ +

Referenced by ClBackend::GetId().

+
64 {
65  auto mgr = std::make_shared<ClMemoryManager>(std::make_unique<arm_compute::CLBufferAllocator>());
66 
67  registry.RegisterMemoryManager(mgr);
68  registry.RegisterFactory(std::make_unique<ClTensorHandleFactory>(mgr));
69 }
+
+
+
The documentation for this class was generated from the following files: +
+
+ + + + -- cgit v1.2.1