24 #ifndef __ARM_COMPUTE_NECONVOLUTIONKERNEL_H__ 25 #define __ARM_COMPUTE_NECONVOLUTIONKERNEL_H__ 54 template <
unsigned int matrix_size>
68 void configure(
const ITensor *input,
ITensor *output,
const int16_t *conv, uint32_t scale,
bool border_undefined);
75 template <
typename OutputType>
76 void convolution(
const Window &win);
80 std::array<int16_t, matrix_size *matrix_size> _convolution;
97 template <
unsigned int matrix_size>
122 template <
typename OutputType>
123 void convolve(
const Window &window);
125 std::array<int16_t, matrix_size> _conv_row;
137 template <
unsigned int matrix_size>
152 void configure(
const ITensor *input,
ITensor *output,
const int16_t *conv_col, uint32_t scale,
bool border_undefined);
164 template <
typename OutputType>
165 void convolution_u16(
const Window &win);
171 template <
typename OutputType>
172 void convolution_s16(
const Window &win);
178 template <
typename OutputType>
179 void convolution_s32(
const Window &win);
181 std::array<int16_t, matrix_size> _conv_col;
223 void configure(
const ITensor *input,
ITensor *output,
const int16_t *conv, uint32_t width, uint32_t height, uint32_t scale,
bool border_undefined);
230 unsigned int get_index(uint32_t val);
235 template <
typename OutputType,
unsigned int rows,
unsigned int cols>
236 void convolution(
const Window &win);
242 std::vector<int16_t> _convolution;
245 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.
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++.
Kernel for the Horizontal pass of a Separable Convolution.
Interface for simple NEON kernels having 1 tensor input and 1 tensor output.
Interface for NEON tensor.
void run(const Window &window) override
Execute the kernel on the passed window.
Kernel for the running convolution on a rectangle matrix.
BorderSize border_size() const override
The size of the border for that kernel.
NEConvolutionKernel()
Default constructor.
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.