24 #ifndef ARM_COMPUTE_NECONVOLUTIONKERNEL_H 25 #define ARM_COMPUTE_NECONVOLUTIONKERNEL_H 54 template <
unsigned int matrix_size>
58 const char *
name()
const override 60 return "NEConvolutionKernel";
89 template <
typename OutputType>
90 void convolution(
const Window &win);
94 std::array<int16_t, matrix_size *matrix_size> _convolution;
111 template <
unsigned int matrix_size>
115 const char *
name()
const override 117 return "NESeparableConvolutionHorKernel";
150 template <
typename OutputType>
151 void convolve(
const Window &window);
153 std::array<int16_t, matrix_size> _conv_row;
165 template <
unsigned int matrix_size>
169 const char *
name()
const override 171 return "NESeparableConvolutionVertKernel";
206 template <
typename OutputType>
207 void convolution_u16(
const Window &win);
213 template <
typename OutputType>
214 void convolution_s16(
const Window &win);
220 template <
typename OutputType>
221 void convolution_s32(
const Window &win);
223 std::array<int16_t, matrix_size> _conv_col;
245 const char *
name()
const override 247 return "NEConvolutionRectangleKernel";
278 unsigned int get_index(uint32_t val);
283 template <
typename OutputType,
unsigned int rows,
unsigned int cols>
284 void convolution(
const Window &win);
290 std::vector<int16_t> _convolution;
293 const static unsigned int _nr_supported_sizes
const Window & window() const
The maximum window the kernel can be executed on.
Kernel for the Vertical pass of a Separable Convolution.
Interface for the kernel to run an arbitrary size convolution on a tensor.
const char * name() const override
Name of the kernel.
void configure(const ITensor *input, ITensor *output, const int16_t *conv, uint32_t scale, bool border_undefined)
Initialise the kernel's input, output and border mode.
Container for 2D border size.
Common interface for all kernels implemented in C++.
const char * name() const override
Name of the kernel.
Kernel for the Horizontal pass of a Separable Convolution.
Interface for simple C++ kernels having 1 tensor input and 1 tensor output.
Interface for Neon tensor.
Copyright (c) 2017-2021 Arm Limited.
const char * name() const override
Name of the kernel.
~NEConvolutionKernel()=default
Default destructor.
Kernel for the running convolution on a rectangle matrix.
void run(const Window &window, const ThreadInfo &info) override
Execute the kernel on the passed window.
BorderSize border_size() const override
The size of the border for that kernel.
const char * name() const override
Name of the kernel.
NEConvolutionKernel()
Default constructor.
ScaleKernelInfo info(interpolation_policy, default_border_mode, PixelValue(), sampling_policy, false)
Information about executing thread and CPU.
NEConvolutionKernel & operator=(const NEConvolutionKernel &)=delete
Prevent instances of this class from being copied (As this class contains pointers).
Describe a multidimensional execution window.
ICPPSimpleKernel INESimpleKernel
Interface for simple Neon kernels having 1 tensor input and 1 tensor output.