20.11
|
#include <NeonBackend.hpp>
Public Member Functions | |
NeonBackend ()=default | |
~NeonBackend ()=default | |
const BackendId & | GetId () const override |
IBackendInternal::IMemoryManagerUniquePtr | CreateMemoryManager () const override |
IWorkloadFactoryPtr | CreateWorkloadFactory (const IBackendInternal::IMemoryManagerSharedPtr &memoryManager=nullptr) const override |
IWorkloadFactoryPtr | CreateWorkloadFactory (class TensorHandleFactoryRegistry &tensorHandleFactoryRegistry) const override |
IWorkloadFactoryPtr | CreateWorkloadFactory (const IMemoryManagerSharedPtr &memoryManager, const ModelOptions &modelOptions) const override |
IWorkloadFactoryPtr | CreateWorkloadFactory (class TensorHandleFactoryRegistry &tensorHandleFactoryRegistry, const ModelOptions &modelOptions) const override |
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 |
IBackendInternal::ILayerSupportSharedPtr | GetLayerSupport (const ModelOptions &modelOptions) const override |
OptimizationViews | OptimizeSubgraphView (const SubgraphView &subgraph) const override |
std::vector< ITensorHandleFactory::FactoryId > | GetHandleFactoryPreferences () const override |
(Optional) Returns a vector of supported TensorHandleFactory ids in preference order. More... | |
void | RegisterTensorHandleFactories (class TensorHandleFactoryRegistry ®istry) override |
(Optional) Register TensorHandleFactories Either this method or CreateMemoryManager() and IWorkloadFactory::CreateTensor()/IWorkloadFactory::CreateSubtensor() methods must be implemented. More... | |
IBackendInternal::IBackendSpecificModelContextPtr | CreateBackendSpecificModelContext (const ModelOptions &modelOptions) const override |
![]() | |
~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 |
virtual OptimizationViews | OptimizeSubgraphView (const SubgraphView &subgraph, const ModelOptions &modelOptions) const |
bool | SupportsTensorAllocatorAPI () const |
ITensorHandleFactory::FactoryId | GetBackwardCompatibleFavoriteHandleFactory () |
Static Public Member Functions | |
static const BackendId & | GetIdStatic () |
![]() | |
static constexpr BackendVersion | GetApiVersion () |
Returns the version of the Backend API. More... | |
Additional Inherited Members | |
![]() | |
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 > |
![]() | |
IBackendInternal ()=default | |
Creation must be done through a specific backend interface. More... | |
![]() | |
IBackend () | |
virtual | ~IBackend () |
Definition at line 12 of file NeonBackend.hpp.
|
default |
|
default |
|
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 94 of file NeonBackend.cpp.
Referenced by NeonBackend::GetId().
|
overridevirtual |
Create context specifically used for profiling interaction from backends.
Reimplemented from IBackendInternal.
Definition at line 99 of file NeonBackend.cpp.
Referenced by NeonBackend::GetId().
|
overridevirtual |
Reimplemented from IBackendInternal.
Definition at line 110 of file NeonBackend.cpp.
Referenced by NeonBackend::CreateWorkloadFactory(), NeonBackend::GetId(), and NeonBackend::GetLayerSupport().
|
overridevirtual |
Reimplemented from IBackendInternal.
Definition at line 48 of file NeonBackend.cpp.
References BaseMemoryManager::Offset.
Referenced by NeonBackend::GetId().
|
overridevirtual |
Implements IBackendInternal.
Definition at line 54 of file NeonBackend.cpp.
Referenced by NeonBackend::GetId().
|
overridevirtual |
Reimplemented from IBackendInternal.
Definition at line 68 of file NeonBackend.cpp.
References BaseMemoryManager::Offset, TensorHandleFactoryRegistry::RegisterFactory(), and TensorHandleFactoryRegistry::RegisterMemoryManager().
|
overridevirtual |
Reimplemented from IBackendInternal.
Definition at line 61 of file NeonBackend.cpp.
References NeonBackend::CreateBackendSpecificModelContext().
|
overridevirtual |
Reimplemented from IBackendInternal.
Definition at line 81 of file NeonBackend.cpp.
References NeonBackend::CreateBackendSpecificModelContext(), BaseMemoryManager::Offset, TensorHandleFactoryRegistry::RegisterFactory(), and TensorHandleFactoryRegistry::RegisterMemoryManager().
|
overridevirtual |
(Optional) Returns a vector of supported TensorHandleFactory ids in preference order.
Reimplemented from IBackendInternal.
Definition at line 399 of file NeonBackend.cpp.
References NeonTensorHandleFactory::GetIdStatic().
Referenced by NeonBackend::GetId().
|
inlineoverridevirtual |
Implements IBackend.
Definition at line 19 of file NeonBackend.hpp.
References NeonBackend::CreateBackendContext(), NeonBackend::CreateBackendProfilingContext(), NeonBackend::CreateBackendSpecificModelContext(), NeonBackend::CreateMemoryManager(), NeonBackend::CreateWorkloadFactory(), NeonBackend::GetHandleFactoryPreferences(), NeonBackend::GetIdStatic(), NeonBackend::GetLayerSupport(), NeonBackend::GetOptimizations(), NeonBackend::OptimizeSubgraphView(), and NeonBackend::RegisterTensorHandleFactories().
|
static |
Definition at line 42 of file NeonBackend.cpp.
References armnn::NeonBackendId().
Referenced by NeonBackend::GetId().
|
overridevirtual |
Implements IBackendInternal.
Definition at line 116 of file NeonBackend.cpp.
Referenced by NeonBackend::GetId().
|
overridevirtual |
Reimplemented from IBackendInternal.
Definition at line 125 of file NeonBackend.cpp.
References NeonBackend::CreateBackendSpecificModelContext().
|
overridevirtual |
Reimplemented from IBackendInternal.
Definition at line 105 of file NeonBackend.cpp.
Referenced by NeonBackend::GetId().
|
overridevirtual |
Reimplemented from IBackendInternal.
Definition at line 134 of file NeonBackend.cpp.
References armnn::Activation, armnn::Addition, OptimizationViews::AddUntouchedSubgraph(), armnn::BatchNormalization, SubgraphView::begin(), Layer::BeginOutputSlots(), armnn::Convolution2d, armnn::DepthwiseConvolution2d, armnn::Division, SubgraphView::end(), Layer::EndOutputSlots(), armnn::FullyConnected, Layer::GetAdditionalInformation(), InputSlot::GetConnectedOutputSlot(), Layer::GetGuid(), Layer::GetInputSlot(), Layer::GetName(), LayerWithParameters< Parameters >::GetParameters(), OptimizationViews::GetSubstitutions(), OutputSlot::GetTensorInfo(), Layer::GetType(), BatchNormalizationLayer::m_Beta, FullyConnectedLayer::m_Bias, DepthwiseConvolution2dLayer::m_Bias, Convolution2dLayer::m_Bias, Convolution2dDescriptor::m_BiasEnabled, DepthwiseConvolution2dDescriptor::m_BiasEnabled, BatchNormalizationLayer::m_Gamma, BatchNormalizationLayer::m_Mean, BatchNormalizationLayer::m_Variance, DepthwiseConvolution2dLayer::m_Weight, FullyConnectedLayer::m_Weight, Convolution2dLayer::m_Weight, armnn::Multiplication, armnn::NeonAdditionWorkloadValidate(), armnn::NeonBatchNormalizationValidate(), armnn::NeonConvolution2dWorkloadValidate(), armnn::NeonDepthwiseConvolutionWorkloadValidate(), armnn::NeonDivisionWorkloadValidate(), armnn::NeonFullyConnectedWorkloadValidate(), armnn::NeonMultiplicationWorkloadValidate(), armnn::NeonSubtractionWorkloadValidate(), armnn::ReportUntouchedLayers(), and armnn::Subtraction.
Referenced by NeonBackend::GetId().
|
overridevirtual |
(Optional) Register TensorHandleFactories Either this method or CreateMemoryManager() and IWorkloadFactory::CreateTensor()/IWorkloadFactory::CreateSubtensor() methods must be implemented.
Reimplemented from IBackendInternal.
Definition at line 404 of file NeonBackend.cpp.
References BaseMemoryManager::Offset, TensorHandleFactoryRegistry::RegisterFactory(), and TensorHandleFactoryRegistry::RegisterMemoryManager().
Referenced by NeonBackend::GetId().