Interface for the kernel to perform Winograd input transform.
More...
#include <NEWinogradConvolutionLayerKernel.h>
|
virtual unsigned int | get_working_space_size (unsigned int num_threads) const =0 |
| Get the working space required to perform the transformation. More...
|
|
virtual unsigned int | get_input_storage_size (int num_batches, int num_channels, int num_rows, int num_cols, bool same_padding) const =0 |
| Determine how much memory (in units of TIn) to allocate for the transformed input. More...
|
|
virtual int | get_matrix_stride (int num_batches, int num_channels, int num_rows, int num_cols, bool same_padding) const =0 |
| Gets the stride between matrices in the input worspace. More...
|
|
virtual void | configure (const ITensor *input_nhwc, const int num_batches, const int num_rows, const int num_cols, const int num_channels, const PaddingType padding, ITensor *output, const int matrix_stride, ITensor *workspace)=0 |
| Configure the output transform kernel. More...
|
|
virtual | ~INEWinogradLayerTransformInputKernel () |
| Destructor. More...
|
|
virtual | ~ICPPKernel ()=default |
| Default destructor. More...
|
|
virtual void | run (const Window &window, const ThreadInfo &info) |
| Execute the kernel on the passed window. More...
|
|
virtual void | run_nd (const Window &window, const ThreadInfo &info, const Window &thread_locator) |
| legacy compatibility layer for implemantions which do not support thread_locator In these cases we simply narrow the interface down the legacy version More...
|
|
virtual void | run_op (ITensorPack &tensors, const Window &window, const ThreadInfo &info) |
| Execute the kernel on the passed window. More...
|
|
virtual const char * | name () const =0 |
| Name of the kernel. More...
|
|
| IKernel () |
| Constructor. More...
|
|
virtual | ~IKernel ()=default |
| Destructor. More...
|
|
virtual bool | is_parallelisable () const |
| Indicates whether or not the kernel is parallelisable. More...
|
|
virtual BorderSize | border_size () const |
| The size of the border for that kernel. More...
|
|
const Window & | window () const |
| The maximum window the kernel can be executed on. More...
|
|
bool | is_window_configured () const |
| Function to check if the embedded window of this kernel has been configured. More...
|
|
Interface for the kernel to perform Winograd input transform.
Definition at line 39 of file NEWinogradConvolutionLayerKernel.h.
◆ ~INEWinogradLayerTransformInputKernel()
◆ configure()
virtual void configure |
( |
const ITensor * |
input_nhwc, |
|
|
const int |
num_batches, |
|
|
const int |
num_rows, |
|
|
const int |
num_cols, |
|
|
const int |
num_channels, |
|
|
const PaddingType |
padding, |
|
|
ITensor * |
output, |
|
|
const int |
matrix_stride, |
|
|
ITensor * |
workspace |
|
) |
| |
|
pure virtual |
Configure the output transform kernel.
- Parameters
-
[in] | input_nhwc | Input tensor in NHWC data layout format. |
[in] | num_batches | Number of batches in input tensor. |
[in] | num_rows | Number of rows in input tensor. |
[in] | num_cols | Number of columns in input tensor. |
[in] | num_channels | Number of channels in input tensor. |
[in] | padding | Padding type. |
[out] | output | Base of output matrices. |
[in] | matrix_stride | Stride between output matrices. |
[in] | workspace | Tensor to be used as the working space during the computation. |
Implemented in NEWinogradLayerTransformInputKernel< T, OutputTileRows, OutputTileCols, KernelRows, KernelCols >.
◆ get_input_storage_size()
virtual unsigned int get_input_storage_size |
( |
int |
num_batches, |
|
|
int |
num_channels, |
|
|
int |
num_rows, |
|
|
int |
num_cols, |
|
|
bool |
same_padding |
|
) |
| const |
|
pure virtual |
Determine how much memory (in units of TIn) to allocate for the transformed input.
- Parameters
-
[in] | num_batches | Number of batches in the input tensor. |
[in] | num_channels | Number of feature maps in the input tensor. |
[in] | num_rows | Number of rows in each feature map. |
[in] | num_cols | Number of columns in each feature map. |
[in] | same_padding | Use "SAME" padding, otherwise use "VALID". |
- Returns
- Storage size (in units of TIn) required.
Implemented in NEWinogradLayerTransformInputKernel< T, OutputTileRows, OutputTileCols, KernelRows, KernelCols >.
◆ get_matrix_stride()
virtual int get_matrix_stride |
( |
int |
num_batches, |
|
|
int |
num_channels, |
|
|
int |
num_rows, |
|
|
int |
num_cols, |
|
|
bool |
same_padding |
|
) |
| const |
|
pure virtual |
Gets the stride between matrices in the input worspace.
- Parameters
-
[in] | num_batches | Number of batches in the input tensor. |
[in] | num_channels | Number of feature maps in the input tensor. |
[in] | num_rows | Number of rows in each feature map. |
[in] | num_cols | Number of columns in each feature map. |
[in] | same_padding | Use "SAME" padding, otherwise use "VALID". |
- Returns
- Stride expressed in bytes.
Implemented in NEWinogradLayerTransformInputKernel< T, OutputTileRows, OutputTileCols, KernelRows, KernelCols >.
◆ get_working_space_size()
virtual unsigned int get_working_space_size |
( |
unsigned int |
num_threads | ) |
const |
|
pure virtual |
The documentation for this class was generated from the following file: