23.08
|
Go to the documentation of this file.
24 #ifndef ARM_COMPUTE_TEST_NEON_HELPER_H
25 #define ARM_COMPUTE_TEST_NEON_HELPER_H
44 template <
typename D,
typename T,
typename... Ts>
45 void fill_tensors(D &&dist, std::initializer_list<int> seeds, T &&
tensor, Ts &&... other_tensors)
47 const std::array < T, 1 +
sizeof...(Ts) > tensors{ { std::forward<T>(
tensor), std::forward<Ts>(other_tensors)... } };
48 std::vector<int> vs(seeds);
51 for(
auto tp : tensors)
66 template <
typename... Args>
69 auto k = std::make_unique<K>();
70 k->configure(std::forward<Args>(
args)...);
71 _kernel = std::move(
k);
77 template <
typename... Args>
85 template <
typename K,
int bordersize>
94 template <
typename T,
typename... Args>
97 auto k = std::make_unique<K>();
98 k->configure(first, std::forward<Args>(
args)...);
99 _kernel = std::move(
k);
101 auto b = std::make_unique<NEFillBorderKernel>();
103 _border_handler = std::move(
b);
108 template <
typename K>
117 template <
typename T,
typename... Args>
120 auto k = std::make_unique<K>();
121 k->configure(first, std::forward<Args>(
args)...);
122 _kernel = std::move(
k);
124 auto b = std::make_unique<NEFillBorderKernel>();
126 _border_handler = std::move(
b);
136 std::unique_ptr<INEKernel> _border_handler{
nullptr };
@ CONSTANT
Pixels outside the image are assumed to have a constant value.
As above but this also setups a Zero border on the input tensor of the specified bordersize.
Class describing the value of a pixel for any image format.
Container for 2D border size.
void run(ITensorPack &tensors)
Run the kernels contained in the function.
virtual void schedule_op(ICPPKernel *kernel, const Hints &hints, const Window &window, ITensorPack &tensors)=0
Runs the kernel in the same thread as the caller synchronously.
This template synthetizes an INESimpleFunction which runs the given kernel K.
Accessor implementation for Tensor objects.
static Status validate(Args &&... args)
Validate input arguments.
#define ARM_COMPUTE_ERROR_ON(cond)
If the condition is true then an error message is printed and an exception thrown.
As above but this also setups a Zero border on the input tensor of the kernel's bordersize.
static IScheduler & get()
Access the scheduler singleton.
Basic interface for functions which have a single async CPU kernel.
void fill_tensors(D &&dist, std::initializer_list< int > seeds, T &&tensor, Ts &&... other_tensors)
CLTensor * tensor
Pointer to the auxiliary tensor.
static constexpr size_t DimY
Alias for dimension 1 also known as Y dimension.
std::unique_ptr< AssetsLibrary > library
virtual void schedule(ICPPKernel *kernel, const Hints &hints)=0
Runs the kernel in the same thread as the caller synchronously.
Basic interface for functions which have a single CPU kernel and no border.
void configure(T first, Args &&... args)
Configure the kernel.
Copyright (c) 2017-2023 Arm Limited.
void configure(Args &&... args)
Configure the kernel.
static constexpr size_t DimZ
Alias for dimension 2 also known as Z dimension.
void configure(T first, Args &&... args)
Configure the kernel.
Basic interface for functions which have a single CPU kernel.
Status validate(const ITensorInfo *scores_in, const ITensorInfo *boxes_in, const ITensorInfo *batch_splits_in, const ITensorInfo *scores_out, const ITensorInfo *boxes_out, const ITensorInfo *classes, const ITensorInfo *batch_splits_out, const ITensorInfo *keeps, const ITensorInfo *keeps_size, const BoxNMSLimitInfo info)