14 const std::shared_ptr<SubGraph>& )
const 16 return ISubGraphConverterPtr{};
25 bool& optimizationAttempted)
const 27 optimizationAttempted =
false;
47 if (!modelOptions.empty())
49 for (
auto optionsGroup : modelOptions)
51 if (optionsGroup.GetBackendId() ==
GetId())
65 if (!modelOptions.empty())
67 for (
auto optionsGroup : modelOptions)
69 if (optionsGroup.GetBackendId() ==
GetId())
109 if (!modelOptions.empty())
111 for (
auto optionsGroup : modelOptions)
113 if (optionsGroup.GetBackendId() ==
GetId())
127 bool optimizationAttempted =
false;
130 SubGraphUniquePtr optSubgraph =
OptimizeSubGraph(subgraph, optimizationAttempted);
134 if (!optimizationAttempted)
138 else if (optSubgraph)
140 result.AddSubstitution({subgraph,
SubgraphView(*optSubgraph.get())});
171 if (favorites.empty())
181 return std::vector<ITensorHandleFactory::FactoryId>();
virtual void RegisterTensorHandleFactories(class TensorHandleFactoryRegistry &)
(Optional) Register TensorHandleFactories Either this method or CreateMemoryManager() and IWorkloadFa...
std::unique_ptr< IWorkloadFactory > IWorkloadFactoryPtr
std::vector< OptimizationPtr > Optimizations
#define ARMNN_NO_DEPRECATE_WARN_BEGIN
virtual IBackendContextPtr CreateBackendContext(const IRuntime::CreationOptions &) const
Create the runtime context of the backend.
std::vector< BackendOptions > ModelOptions
unsigned int MemorySourceFlags
Copyright (c) 2021 ARM Limited and Contributors.
std::unique_ptr< IMemoryManager > IMemoryManagerUniquePtr
void IgnoreUnused(Ts &&...)
ITensorHandleFactory::FactoryId GetBackwardCompatibleFavoriteHandleFactory()
virtual const BackendId & GetId() const =0
virtual std::vector< ITensorHandleFactory::FactoryId > GetHandleFactoryPreferences() const
(Optional) Returns a vector of supported TensorHandleFactory ids in preference order.
virtual IWorkloadFactoryPtr CreateWorkloadFactory(const IMemoryManagerSharedPtr &memoryManager=nullptr) const =0
The SubgraphView class represents a subgraph of a Graph.
std::unique_ptr< armnn::profiling::IBackendProfiling > IBackendProfilingPtr
#define ARMNN_NO_DEPRECATE_WARN_END
std::shared_ptr< IBackendModelContext > IBackendSpecificModelContextPtr
bool SupportsTensorAllocatorAPI() const
std::shared_ptr< IMemoryManager > IMemoryManagerSharedPtr
virtual Optimizations GetOptimizations() const
void AddUntouchedSubgraph(SubgraphView &&subgraph)
std::shared_ptr< ILayerSupport > ILayerSupportSharedPtr
virtual IBackendProfilingContextPtr CreateBackendProfilingContext(const IRuntime::CreationOptions &creationOptions, IBackendProfilingPtr &backendProfiling)
Create context specifically used for profiling interaction from backends.
virtual ILayerSupportSharedPtr GetLayerSupport() const =0
virtual IBackendSpecificModelContextPtr CreateBackendSpecificModelContext(const ModelOptions &modelOptions) const
virtual OptimizationViews OptimizeSubgraphView(const SubgraphView &subgraph) const
virtual SubGraphUniquePtr OptimizeSubGraph(const SubGraph &subGraph, bool &optimizationAttempted) const
virtual ARMNN_NO_DEPRECATE_WARN_END IMemoryManagerUniquePtr CreateMemoryManager() const
virtual ISubGraphConverterPtr CreateSubGraphConverter(const std::shared_ptr< SubGraph > &subGraph) const
static const FactoryId LegacyFactoryId
std::shared_ptr< armnn::profiling::IBackendProfilingContext > IBackendProfilingContextPtr
This is the bridge between backend and backend profiling we'll keep it in the backend namespace...
std::unique_ptr< IBackendContext > IBackendContextPtr