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";
79 template <
typename OutputType>
80 void convolution(
const Window &win);
84 std::array<int16_t, matrix_size *matrix_size> _convolution;
101 template <
unsigned int matrix_size>
105 const char *
name()
const override 107 return "NESeparableConvolutionHorKernel";
130 template <
typename OutputType>
131 void convolve(
const Window &window);
133 std::array<int16_t, matrix_size> _conv_row;
145 template <
unsigned int matrix_size>
149 const char *
name()
const override 151 return "NESeparableConvolutionVertKernel";
176 template <
typename OutputType>
177 void convolution_u16(
const Window &win);
183 template <
typename OutputType>
184 void convolution_s16(
const Window &win);
190 template <
typename OutputType>
191 void convolution_s32(
const Window &win);
193 std::array<int16_t, matrix_size> _conv_col;
215 const char *
name()
const override 217 return "NEConvolutionRectangleKernel";
246 unsigned int get_index(uint32_t val);
251 template <
typename OutputType,
unsigned int rows,
unsigned int cols>
252 void convolution(
const Window &win);
258 std::vector<int16_t> _convolution;
261 const static unsigned int _nr_supported_sizes
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.
src info() -> set_format(Format::S16)
This file contains all available output stages for GEMMLowp on OpenCL.
const char * name() const override
Name of the kernel.
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.
Information about executing thread and CPU.
ICPPSimpleKernel & operator=(const ICPPSimpleKernel &)=delete
Prevent instances of this class from being copied (As this class contains pointers) ...
const Window & window() const
The maximum window the kernel can be executed on.
Describe a multidimensional execution window.