21.05
|
#include <IBackendInternal.hpp>
Public Types | |
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 | IBackendSpecificModelContextPtr = std::shared_ptr< IBackendModelContext > |
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 > |
Public Member Functions | |
~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 Optimizations | GetOptimizations () const |
virtual SubGraphUniquePtr | OptimizeSubGraph (const SubGraph &subGraph, bool &optimizationAttempted) const |
virtual ARMNN_NO_DEPRECATE_WARN_END IMemoryManagerUniquePtr | CreateMemoryManager () const |
virtual IWorkloadFactoryPtr | CreateWorkloadFactory (const IMemoryManagerSharedPtr &memoryManager=nullptr) const =0 |
virtual IWorkloadFactoryPtr | CreateWorkloadFactory (class TensorHandleFactoryRegistry &tensorHandleFactoryRegistry) const |
virtual IWorkloadFactoryPtr | CreateWorkloadFactory (const IMemoryManagerSharedPtr &memoryManager, const ModelOptions &modelOptions) const |
virtual IWorkloadFactoryPtr | CreateWorkloadFactory (class TensorHandleFactoryRegistry &tensorHandleFactoryRegistry, const ModelOptions &modelOptions) const |
virtual IWorkloadFactoryPtr | CreateWorkloadFactory (class TensorHandleFactoryRegistry &tensorHandleFactoryRegistry, const ModelOptions &modelOptions, MemorySourceFlags inputFlags, MemorySourceFlags outputFlags) const |
virtual IBackendContextPtr | CreateBackendContext (const IRuntime::CreationOptions &) const |
Create the runtime context of the backend. More... | |
virtual IBackendSpecificModelContextPtr | CreateBackendSpecificModelContext (const ModelOptions &modelOptions) const |
virtual IBackendProfilingContextPtr | CreateBackendProfilingContext (const IRuntime::CreationOptions &creationOptions, IBackendProfilingPtr &backendProfiling) |
Create context specifically used for profiling interaction from backends. More... | |
virtual ILayerSupportSharedPtr | GetLayerSupport () const =0 |
virtual ILayerSupportSharedPtr | GetLayerSupport (const ModelOptions &modelOptions) const |
virtual OptimizationViews | OptimizeSubgraphView (const SubgraphView &subgraph) const |
virtual OptimizationViews | OptimizeSubgraphView (const SubgraphView &subgraph, const ModelOptions &modelOptions) const |
bool | SupportsTensorAllocatorAPI () const |
ITensorHandleFactory::FactoryId | GetBackwardCompatibleFavoriteHandleFactory () |
virtual std::vector< ITensorHandleFactory::FactoryId > | GetHandleFactoryPreferences () const |
(Optional) Returns a vector of supported TensorHandleFactory ids in preference order. More... | |
virtual void | RegisterTensorHandleFactories (class TensorHandleFactoryRegistry &) |
(Optional) Register TensorHandleFactories Either this method or CreateMemoryManager() and IWorkloadFactory::CreateTensor()/IWorkloadFactory::CreateSubtensor() methods must be implemented. More... | |
virtual void | RegisterTensorHandleFactories (class TensorHandleFactoryRegistry ®istry, MemorySourceFlags inputFlags, MemorySourceFlags outputFlags) |
(Optional) Register TensorHandleFactories Either this method or CreateMemoryManager() and IWorkloadFactory::CreateTensor()/IWorkloadFactory::CreateSubtensor() methods must be implemented. More... | |
virtual bool | HasCapability (BackendCapability) const |
Returns true if backend support the capability false otherwise. More... | |
Public Member Functions inherited from IBackend | |
virtual const BackendId & | GetId () const =0 |
Static Public Member Functions | |
static constexpr BackendVersion | GetApiVersion () |
Returns the version of the Backend API. More... | |
Protected Member Functions | |
IBackendInternal ()=default | |
Creation must be done through a specific backend interface. More... | |
Protected Member Functions inherited from IBackend | |
IBackend () | |
virtual | ~IBackend () |
Definition at line 68 of file IBackendInternal.hpp.
using GraphUniquePtr = std::unique_ptr<Graph> |
Definition at line 94 of file IBackendInternal.hpp.
using IBackendContextPtr = std::unique_ptr<IBackendContext> |
Definition at line 81 of file IBackendInternal.hpp.
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.
Definition at line 83 of file IBackendInternal.hpp.
using IBackendProfilingPtr = std::unique_ptr<armnn::profiling::IBackendProfiling> |
Definition at line 84 of file IBackendInternal.hpp.
using IBackendSpecificModelContextPtr = std::shared_ptr<IBackendModelContext> |
Definition at line 89 of file IBackendInternal.hpp.
using ILayerSupportSharedPtr = std::shared_ptr<ILayerSupport> |
Definition at line 87 of file IBackendInternal.hpp.
using IMemoryManagerSharedPtr = std::shared_ptr<IMemoryManager> |
Definition at line 92 of file IBackendInternal.hpp.
using IMemoryManagerUniquePtr = std::unique_ptr<IMemoryManager> |
Definition at line 91 of file IBackendInternal.hpp.
using instead = std::unique_ptr<SubGraph> |
Definition at line 101 of file IBackendInternal.hpp.
using IWorkloadFactoryPtr = std::unique_ptr<IWorkloadFactory> |
Definition at line 80 of file IBackendInternal.hpp.
using OptimizationPtr = std::unique_ptr<Optimization> |
Definition at line 85 of file IBackendInternal.hpp.
using Optimizations = std::vector<OptimizationPtr> |
Definition at line 86 of file IBackendInternal.hpp.
using SubgraphViewUniquePtr = std::unique_ptr<SubgraphView> |
Definition at line 95 of file IBackendInternal.hpp.
using supported = std::unique_ptr<ISubGraphConverter> |
Definition at line 99 of file IBackendInternal.hpp.
|
protecteddefault |
Creation must be done through a specific backend interface.
|
overridedefault |
Allow backends created by the factory function to be destroyed through IBackendInternal.
|
virtual |
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 in MockBackend, ClBackend, NeonBackend, MockImportBackend, and RefBackend.
Definition at line 90 of file IBackendInternal.cpp.
|
virtual |
Create context specifically used for profiling interaction from backends.
Reimplemented in MockBackend, ClBackend, MockImportBackend, NeonBackend, and RefBackend.
Definition at line 101 of file IBackendInternal.cpp.
|
virtual |
Reimplemented in ClBackend, and NeonBackend.
Definition at line 95 of file IBackendInternal.cpp.
|
virtual |
Reimplemented in MockBackend, MockImportBackend, ClBackend, NeonBackend, and RefBackend.
Definition at line 32 of file IBackendInternal.cpp.
Referenced by LoadedNetwork::MakeLoadedNetwork().
|
virtual |
Definition at line 13 of file IBackendInternal.cpp.
|
pure virtual |
Implemented in MockBackend, MockImportBackend, ClBackend, NeonBackend, and RefBackend.
Referenced by IBackendInternal::CreateWorkloadFactory(), LoadedNetwork::MakeLoadedNetwork(), and TestDynamicBackendId().
|
virtual |
Reimplemented in MockImportBackend, ClBackend, NeonBackend, and RefBackend.
Definition at line 37 of file IBackendInternal.cpp.
|
virtual |
Reimplemented in ClBackend, and NeonBackend.
Definition at line 43 of file IBackendInternal.cpp.
References IBackendInternal::CreateWorkloadFactory(), and IBackend::GetId().
|
virtual |
Reimplemented in ClBackend, and NeonBackend.
Definition at line 61 of file IBackendInternal.cpp.
References IBackendInternal::CreateWorkloadFactory(), and IBackend::GetId().
|
virtual |
Reimplemented in ClBackend.
Definition at line 79 of file IBackendInternal.cpp.
References IBackendInternal::CreateWorkloadFactory(), and armnn::IgnoreUnused().
|
inlinestatic |
Returns the version of the Backend API.
Definition at line 179 of file IBackendInternal.hpp.
References BackendVersion::BackendVersion().
Referenced by DynamicBackend::DynamicBackend(), GetVersion(), and DynamicBackendUtils::IsBackendCompatible().
ITensorHandleFactory::FactoryId GetBackwardCompatibleFavoriteHandleFactory | ( | ) |
Definition at line 168 of file IBackendInternal.cpp.
References IBackendInternal::GetHandleFactoryPreferences(), and ITensorHandleFactory::LegacyFactoryId.
|
virtual |
(Optional) Returns a vector of supported TensorHandleFactory ids in preference order.
Reimplemented in MockImportBackend, NeonBackend, ClBackend, and RefBackend.
Definition at line 179 of file IBackendInternal.cpp.
Referenced by armnn::CalculateSlotOption(), IBackendInternal::GetBackwardCompatibleFavoriteHandleFactory(), and IBackendInternal::SupportsTensorAllocatorAPI().
|
pure virtual |
Implemented in MockBackend, ClBackend, MockImportBackend, NeonBackend, and RefBackend.
Referenced by IBackendInternal::GetLayerSupport(), and TestDynamicBackendId().
|
virtual |
Reimplemented in ClBackend, and NeonBackend.
Definition at line 107 of file IBackendInternal.cpp.
References IBackend::GetId(), and IBackendInternal::GetLayerSupport().
|
virtual |
Reimplemented in MockBackend, ClBackend, MockImportBackend, NeonBackend, and RefBackend.
Definition at line 19 of file IBackendInternal.cpp.
|
inlinevirtual |
Returns true if backend support the capability false otherwise.
Reimplemented in ClBackend, NeonBackend, and RefBackend.
Definition at line 182 of file IBackendInternal.hpp.
|
virtual |
Definition at line 24 of file IBackendInternal.cpp.
References ARMNN_NO_DEPRECATE_WARN_END.
Referenced by IBackendInternal::OptimizeSubgraphView().
|
virtual |
Reimplemented in MockBackend, MockImportBackend, NeonBackend, and RefBackend.
Definition at line 125 of file IBackendInternal.cpp.
References OptimizationViews::AddUntouchedSubgraph(), ARMNN_NO_DEPRECATE_WARN_BEGIN, ARMNN_NO_DEPRECATE_WARN_END, and IBackendInternal::OptimizeSubGraph().
Referenced by IBackendInternal::OptimizeSubgraphView().
|
virtual |
Reimplemented in ClBackend.
Definition at line 150 of file IBackendInternal.cpp.
References IBackendInternal::OptimizeSubgraphView().
|
inlinevirtual |
(Optional) Register TensorHandleFactories Either this method or CreateMemoryManager() and IWorkloadFactory::CreateTensor()/IWorkloadFactory::CreateSubtensor() methods must be implemented.
Reimplemented in MockImportBackend, NeonBackend, ClBackend, and RefBackend.
Definition at line 169 of file IBackendInternal.hpp.
Referenced by IBackendInternal::RegisterTensorHandleFactories().
|
virtual |
(Optional) Register TensorHandleFactories Either this method or CreateMemoryManager() and IWorkloadFactory::CreateTensor()/IWorkloadFactory::CreateSubtensor() methods must be implemented.
Reimplemented in ClBackend.
Definition at line 161 of file IBackendInternal.cpp.
References IBackendInternal::RegisterTensorHandleFactories().
bool SupportsTensorAllocatorAPI | ( | ) | const |
Definition at line 156 of file IBackendInternal.cpp.
References IBackendInternal::GetHandleFactoryPreferences().
Referenced by LoadedNetwork::MakeLoadedNetwork().