21.02
|
Basic function to execute square convolution.Currently it supports 5x5, 7x7, 9x9. More...
#include <CLConvolution.h>
Public Member Functions | |
CLConvolutionSquare (std::shared_ptr< IMemoryManager > memory_manager=nullptr) | |
Default constructor. More... | |
CLConvolutionSquare (const CLConvolutionSquare &)=delete | |
Prevent instances of this class from being copied (As this class contains pointers) More... | |
CLConvolutionSquare (CLConvolutionSquare &&)=default | |
Default move constructor. More... | |
CLConvolutionSquare & | operator= (const CLConvolutionSquare &)=delete |
Prevent instances of this class from being copied (As this class contains pointers) More... | |
CLConvolutionSquare & | operator= (CLConvolutionSquare &&)=default |
Default move assignment operator. More... | |
~CLConvolutionSquare () | |
Default destructor. More... | |
void | configure (ICLTensor *input, ICLTensor *output, const int16_t *conv, uint32_t scale, BorderMode border_mode, uint8_t constant_border_value=0) |
Initialize the function's source, destination, conv and border_mode. More... | |
void | configure (const CLCompileContext &compile_context, ICLTensor *input, ICLTensor *output, const int16_t *conv, uint32_t scale, BorderMode border_mode, uint8_t constant_border_value=0) |
Initialize the function's source, destination, conv and border_mode. More... | |
void | run () override |
Run the kernels contained in the function. More... | |
Public Member Functions inherited from IFunction | |
virtual | ~IFunction ()=default |
Destructor. More... | |
virtual void | prepare () |
Prepare the function for executing. More... | |
Basic function to execute square convolution.Currently it supports 5x5, 7x7, 9x9.
This function calls the following OpenCL kernels:
Definition at line 92 of file CLConvolution.h.
CLConvolutionSquare | ( | std::shared_ptr< IMemoryManager > | memory_manager = nullptr | ) |
Default constructor.
Definition at line 56 of file CLConvolution.cpp.
References CLConvolutionSquare< matrix_size >::~CLConvolutionSquare().
|
delete |
Prevent instances of this class from being copied (As this class contains pointers)
|
default |
Default move constructor.
|
default |
Default destructor.
Referenced by CLConvolutionSquare< matrix_size >::CLConvolutionSquare().
void configure | ( | ICLTensor * | input, |
ICLTensor * | output, | ||
const int16_t * | conv, | ||
uint32_t | scale, | ||
BorderMode | border_mode, | ||
uint8_t | constant_border_value = 0 |
||
) |
Initialize the function's source, destination, conv and border_mode.
[in,out] | input | Source tensor. Data types supported: U8. (Written to only for border_mode != UNDEFINED) |
[out] | output | Destination tensor, Data types supported: U8 or S16. |
[in] | conv | matrix_size x matrix_size S16 coefficients structured as a row-major 2D array in a linear buffer. |
[in] | scale | Scale of the convolution matrix. If 0 is passed, it will be set to the sum of the coefficients of the convolution or 1 if they add up to 0. |
[in] | border_mode | Strategy to use for borders. |
[in] | constant_border_value | (Optional) Constant value to use for borders if border_mode is set to CONSTANT. |
Definition at line 66 of file CLConvolution.cpp.
References CLKernelLibrary::get().
Referenced by CLConvolutionRectangle::configure().
void configure | ( | const CLCompileContext & | compile_context, |
ICLTensor * | input, | ||
ICLTensor * | output, | ||
const int16_t * | conv, | ||
uint32_t | scale, | ||
BorderMode | border_mode, | ||
uint8_t | constant_border_value = 0 |
||
) |
Initialize the function's source, destination, conv and border_mode.
[in] | compile_context | The compile context to be used. |
[in,out] | input | Source tensor. Data types supported: U8. (Written to only for border_mode != UNDEFINED) |
[out] | output | Destination tensor, Data types supported: U8 or S16. |
[in] | conv | matrix_size x matrix_size S16 coefficients structured as a row-major 2D array in a linear buffer. |
[in] | scale | Scale of the convolution matrix. If 0 is passed, it will be set to the sum of the coefficients of the convolution or 1 if they add up to 0. |
[in] | border_mode | Strategy to use for borders. |
[in] | constant_border_value | (Optional) Constant value to use for borders if border_mode is set to CONSTANT. |
Definition at line 73 of file CLConvolution.cpp.
References CLTensorAllocator::allocate(), CLTensor::allocator(), ARM_COMPUTE_ERROR_ON, ARM_COMPUTE_ERROR_ON_DATA_TYPE_CHANNEL_NOT_IN, arm_compute::calculate_matrix_scale(), arm_compute::data_type_for_convolution(), ITensor::info(), ITensorAllocator::init(), MemoryGroup::manage(), arm_compute::test::validation::scale, arm_compute::separate_matrix(), ITensorInfo::tensor_shape(), arm_compute::U8, and arm_compute::UNDEFINED.
|
delete |
Prevent instances of this class from being copied (As this class contains pointers)
|
default |
Default move assignment operator.
|
overridevirtual |
Run the kernels contained in the function.
For Neon kernels:
For OpenCL kernels:
Implements IFunction.
Definition at line 110 of file CLConvolution.cpp.
References CLScheduler::enqueue(), and CLScheduler::get().