56 static detail::BackendRegistrar<NEDeviceBackend> NEDeviceBackend_registrar(
Target::NEON);
126 return std::make_unique<NETensorHandle>(
info);
131 if(parent ==
nullptr)
136 return std::make_unique<NESubTensorHandle>(parent,
shape, coords, extend_parent);
158 std::shared_ptr<ILifetimeManager> lifetime_mgr =
nullptr;
161 lifetime_mgr = std::make_shared<BlobLifetimeManager>();
165 lifetime_mgr = std::make_shared<OffsetLifetimeManager>();
167 auto pool_mgr = std::make_shared<PoolManager>();
168 auto mm = std::make_shared<MemoryManagerOnDemand>(lifetime_mgr, pool_mgr);
175 auto weights_mgr = std::make_shared<IWeightsManager>();
std::shared_ptr< arm_compute::IMemoryManager > create_memory_manager(MemoryManagerAffinity affinity) override
Create a backend memory manager given its affinity.
DataType data_type
Data type.
TensorShape shape
Tensor shape.
Affinity at buffer level.
Neon capable target device.
Affinity at offset level.
IAllocator * backend_allocator() override
Gets a backend memory allocator.
virtual void set_num_threads(unsigned int num_threads)=0
Sets the number of threads the scheduler will use to run the kernels.
Target assigned_target() const
Returns assigned target for this node.
bool insert_weights_management_ctx(WeightsManagerContext &&weights_ctx)
Inserts a weights manager context.
std::shared_ptr< arm_compute::IMemoryGroup > cross_group
Cross-function memory group.
Status validate_node(INode &node) override
Validate a node.
bool insert_memory_management_ctx(MemoryManagerContext &&memory_ctx)
Inserts a memory manager context.
void initialize_backend() override
Initializes the backend.
std::unique_ptr< ITensorHandle > create_tensor(const Tensor &tensor) override
Create a backend Tensor.
#define ARM_COMPUTE_ERROR_ON(cond)
If the condition is true then an error message is printed and an exception thrown.
WeightsManagerContext * weights_management_ctx(Target target)
Gets a weights manager context for a given target.
static Status validate(INode *node)
Validate a node.
std::shared_ptr< arm_compute::IWeightsManager > create_weights_manager() override
Create a backend weights manager.
Copyright (c) 2017-2021 Arm Limited.
bool is_backend_supported() override
Checks if an instantiated backend is actually supported.
TensorDescriptor & desc()
TensorInfo metadata accessor.
QuantizationInfo quant_info
Quantization info.
ITensorInfo & set_data_layout(const DataLayout &data_layout) override
Set the data layout of the tensor.
#define ARM_COMPUTE_UNUSED(...)
To avoid unused variables warnings.
std::unique_ptr< arm_compute::IFunction > configure_node(INode &node, GraphContext &ctx) override
Configure a backend Node.
NodeID id() const
Returns node's ID.
static std::unique_ptr< arm_compute::IFunction > create(INode *node, GraphContext &ctx)
Create a backend execution function depending on the node type.
Tensor handle interface object.
std::unique_ptr< ITensorHandle > create_subtensor(ITensorHandle *parent, TensorShape shape, Coordinates coords, bool extend_parent) override
Create a backend Sub-Tensor.
std::shared_ptr< arm_compute::IMemoryManager > intra_mm
Intra-function memory manager.
ScaleKernelInfo info(interpolation_policy, default_border_mode, PixelValue(), sampling_policy, false)
const GraphConfig & config() const
Graph configuration accessor.
std::shared_ptr< arm_compute::IMemoryManager > cross_mm
Cross-function memory manager.
Contains structs required for weights management.
#define ARM_COMPUTE_LOG_GRAPH_VERBOSE(x)
Contains structs required for memory management.
int num_threads
Number of threads to use (thread capable backends), if 0 the backend will auto-initialize, if -1 the backend will stay as it is.
void release_backend_context(GraphContext &ctx) override
Release the backend specific resources associated to a given graph context.
Store the tensor's metadata.
IAllocator * allocator
Backend allocator to use.
void setup_backend_context(GraphContext &ctx) override
Setups the given graph context.
MemoryManagerContext * memory_management_ctx(Target target)
Gets a memory manager context for a given target.
DataLayout layout
Data layout.
MemoryManagerAffinity
Backend Memory Manager affinity.
std::shared_ptr< arm_compute::IWeightsManager > wm
Weights manager.
static IScheduler & get()
Access the scheduler singleton.