|
| CLGEMMInterleave4x4Kernel () |
| Default constructor. More...
|
|
| CLGEMMInterleave4x4Kernel (const CLGEMMInterleave4x4Kernel &)=delete |
| Prevent instances of this class from being copied (As this class contains pointers) More...
|
|
CLGEMMInterleave4x4Kernel & | operator= (const CLGEMMInterleave4x4Kernel &)=delete |
| Prevent instances of this class from being copied (As this class contains pointers) More...
|
|
| CLGEMMInterleave4x4Kernel (CLGEMMInterleave4x4Kernel &&)=default |
| Allow instances of this class to be moved. More...
|
|
CLGEMMInterleave4x4Kernel & | operator= (CLGEMMInterleave4x4Kernel &&)=default |
| Allow instances of this class to be moved. More...
|
|
void | configure (const ICLTensor *input, ICLTensor *output, int mult_interleave4x4_height=1) |
| Initialise the kernel's input and output. More...
|
|
void | run (const Window &window, cl::CommandQueue &queue) override |
| Enqueue the OpenCL kernel to process the given window on the passed OpenCL command queue. More...
|
|
| ICLKernel () |
| Constructor. More...
|
|
cl::Kernel & | kernel () |
| Returns a reference to the OpenCL kernel of this object. More...
|
|
template<typename T > |
void | add_1D_array_argument (unsigned int &idx, const ICLArray< T > *array, const Strides &strides, unsigned int num_dimensions, const Window &window) |
| Add the passed 1D array's parameters to the object's kernel's arguments starting from the index idx. More...
|
|
void | add_1D_tensor_argument (unsigned int &idx, const ICLTensor *tensor, const Window &window) |
| Add the passed 1D tensor's parameters to the object's kernel's arguments starting from the index idx. More...
|
|
void | add_2D_tensor_argument (unsigned int &idx, const ICLTensor *tensor, const Window &window) |
| Add the passed 2D tensor's parameters to the object's kernel's arguments starting from the index idx. More...
|
|
void | add_3D_tensor_argument (unsigned int &idx, const ICLTensor *tensor, const Window &window) |
| Add the passed 3D tensor's parameters to the object's kernel's arguments starting from the index idx. More...
|
|
void | add_4D_tensor_argument (unsigned int &idx, const ICLTensor *tensor, const Window &window) |
| Add the passed 4D tensor's parameters to the object's kernel's arguments starting from the index idx. More...
|
|
template<typename T > |
void | add_argument (unsigned int &idx, T value) |
| Add the passed parameters to the object's kernel's arguments starting from the index idx. More...
|
|
void | set_lws_hint (const cl::NDRange &lws_hint) |
| Set the Local-Workgroup-Size hint. More...
|
|
cl::NDRange | lws_hint () const |
| Return the Local-Workgroup-Size hint. More...
|
|
const std::string & | config_id () const |
| Get the configuration ID. More...
|
|
void | set_target (GPUTarget target) |
| Set the targeted GPU architecture. More...
|
|
void | set_target (cl::Device &device) |
| Set the targeted GPU architecture according to the CL device. More...
|
|
GPUTarget | get_target () const |
| Get the targeted GPU architecture. More...
|
|
size_t | get_max_workgroup_size () |
| Get the maximum workgroup size for the device the CLKernelLibrary uses. More...
|
|
template<typename T , unsigned int dimension_size> |
void | add_array_argument (unsigned &idx, const ICLArray< T > *array, const Strides &strides, unsigned int num_dimensions, const Window &window) |
| Add the passed array's parameters to the object's kernel's arguments starting from the index idx. 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...
|
|
OpenCL kernel which interleaves the elements of a matrix A in chunk of 4x4.
This function puts the values in a 4x4 block of Matrix A on the same row (Interleaved values)
\[ \left( \begin{array}{cccc} a00 & a01 & a02 & a03 \\ a10 & a11 & a12 & a13 \\ a20 & a21 & a22 & a23 \\ a30 & a31 & a32 & a33 \\ \end{array} \right) \rightarrow \left( \begin{array}{ccccccccccccccccc} a00 & a10 & a20 & a30 & a01 & a11 & a21 & a31 & a02 & a12 & a22 & a32 & a03 & a13 & a23 & a33 \\ \end{array} \right) \]
After this operation, the output matrix will have the following shape: [ height * W, ceil(width / W) ] where W = 4 * mult_interleave4x4_height
Definition at line 52 of file CLGEMMInterleave4x4Kernel.h.