OpenCV: cv::ocl::Kernel Class Reference

| OpenCV 3.4.2 Open Source Computer Vision

Public Member Functions | Protected Attributes | List of all members
cv::ocl::Kernel Class Reference
Core functionality » OpenCL support

`#include "ocl.hpp"`

## Public Member Functions
| Kernel ()
| Kernel (const char *kname, const Program &prog)
| Kernel (const char *kname, const ProgramSource &prog, const String &buildopts=String(), String *errmsg=0)
| Kernel (const Kernel &k)
| ~Kernel ()
template<typename _Tp0 >
Kernel & | args (const _Tp0 &a0)
template<typename _Tp0 , typename _Tp1 >
Kernel & | args (const _Tp0 &a0, const _Tp1 &a1)
template<typename _Tp0 , typename _Tp1 , typename _Tp2 >
Kernel & | args (const _Tp0 &a0, const _Tp1 &a1, const _Tp2 &a2)
template<typename _Tp0 , typename _Tp1 , typename _Tp2 , typename _Tp3 >
Kernel & | args (const _Tp0 &a0, const _Tp1 &a1, const _Tp2 &a2, const _Tp3 &a3)
template<typename _Tp0 , typename _Tp1 , typename _Tp2 , typename _Tp3 , typename _Tp4 >
Kernel & | args (const _Tp0 &a0, const _Tp1 &a1, const _Tp2 &a2, const _Tp3 &a3, const _Tp4 &a4)
template<typename _Tp0 , typename _Tp1 , typename _Tp2 , typename _Tp3 , typename _Tp4 , typename _Tp5 >
Kernel & | args (const _Tp0 &a0, const _Tp1 &a1, const _Tp2 &a2, const _Tp3 &a3, const _Tp4 &a4, const _Tp5 &a5)
template<typename _Tp0 , typename _Tp1 , typename _Tp2 , typename _Tp3 , typename _Tp4 , typename _Tp5 , typename _Tp6 >
Kernel & | args (const _Tp0 &a0, const _Tp1 &a1, const _Tp2 &a2, const _Tp3 &a3, const _Tp4 &a4, const _Tp5 &a5, const _Tp6 &a6)
template<typename _Tp0 , typename _Tp1 , typename _Tp2 , typename _Tp3 , typename _Tp4 , typename _Tp5 , typename _Tp6 , typename _Tp7 >
Kernel & | args (const _Tp0 &a0, const _Tp1 &a1, const _Tp2 &a2, const _Tp3 &a3, const _Tp4 &a4, const _Tp5 &a5, const _Tp6 &a6, const _Tp7 &a7)
template<typename _Tp0 , typename _Tp1 , typename _Tp2 , typename _Tp3 , typename _Tp4 , typename _Tp5 , typename _Tp6 , typename _Tp7 , typename _Tp8 >
Kernel & | args (const _Tp0 &a0, const _Tp1 &a1, const _Tp2 &a2, const _Tp3 &a3, const _Tp4 &a4, const _Tp5 &a5, const _Tp6 &a6, const _Tp7 &a7, const _Tp8 &a8)
template<typename _Tp0 , typename _Tp1 , typename _Tp2 , typename _Tp3 , typename _Tp4 , typename _Tp5 , typename _Tp6 , typename _Tp7 , typename _Tp8 , typename _Tp9 >
Kernel & | args (const _Tp0 &a0, const _Tp1 &a1, const _Tp2 &a2, const _Tp3 &a3, const _Tp4 &a4, const _Tp5 &a5, const _Tp6 &a6, const _Tp7 &a7, const _Tp8 &a8, const _Tp9 &a9)
template<typename _Tp0 , typename _Tp1 , typename _Tp2 , typename _Tp3 , typename _Tp4 , typename _Tp5 , typename _Tp6 , typename _Tp7 , typename _Tp8 , typename _Tp9 , typename _Tp10 >
Kernel & | args (const _Tp0 &a0, const _Tp1 &a1, const _Tp2 &a2, const _Tp3 &a3, const _Tp4 &a4, const _Tp5 &a5, const _Tp6 &a6, const _Tp7 &a7, const _Tp8 &a8, const _Tp9 &a9, const _Tp10 &a10)
template<typename _Tp0 , typename _Tp1 , typename _Tp2 , typename _Tp3 , typename _Tp4 , typename _Tp5 , typename _Tp6 , typename _Tp7 , typename _Tp8 , typename _Tp9 , typename _Tp10 , typename _Tp11 >
Kernel & | args (const _Tp0 &a0, const _Tp1 &a1, const _Tp2 &a2, const _Tp3 &a3, const _Tp4 &a4, const _Tp5 &a5, const _Tp6 &a6, const _Tp7 &a7, const _Tp8 &a8, const _Tp9 &a9, const _Tp10 &a10, const _Tp11 &a11)
template<typename _Tp0 , typename _Tp1 , typename _Tp2 , typename _Tp3 , typename _Tp4 , typename _Tp5 , typename _Tp6 , typename _Tp7 , typename _Tp8 , typename _Tp9 , typename _Tp10 , typename _Tp11 , typename _Tp12 >
Kernel & | args (const _Tp0 &a0, const _Tp1 &a1, const _Tp2 &a2, const _Tp3 &a3, const _Tp4 &a4, const _Tp5 &a5, const _Tp6 &a6, const _Tp7 &a7, const _Tp8 &a8, const _Tp9 &a9, const _Tp10 &a10, const _Tp11 &a11, const _Tp12 &a12)
template<typename _Tp0 , typename _Tp1 , typename _Tp2 , typename _Tp3 , typename _Tp4 , typename _Tp5 , typename _Tp6 , typename _Tp7 , typename _Tp8 , typename _Tp9 , typename _Tp10 , typename _Tp11 , typename _Tp12 , typename _Tp13 >
Kernel & | args (const _Tp0 &a0, const _Tp1 &a1, const _Tp2 &a2, const _Tp3 &a3, const _Tp4 &a4, const _Tp5 &a5, const _Tp6 &a6, const _Tp7 &a7, const _Tp8 &a8, const _Tp9 &a9, const _Tp10 &a10, const _Tp11 &a11, const _Tp12 &a12, const _Tp13 &a13)
template<typename _Tp0 , typename _Tp1 , typename _Tp2 , typename _Tp3 , typename _Tp4 , typename _Tp5 , typename _Tp6 , typename _Tp7 , typename _Tp8 , typename _Tp9 , typename _Tp10 , typename _Tp11 , typename _Tp12 , typename _Tp13 , typename _Tp14 >
Kernel & | args (const _Tp0 &a0, const _Tp1 &a1, const _Tp2 &a2, const _Tp3 &a3, const _Tp4 &a4, const _Tp5 &a5, const _Tp6 &a6, const _Tp7 &a7, const _Tp8 &a8, const _Tp9 &a9, const _Tp10 &a10, const _Tp11 &a11, const _Tp12 &a12, const _Tp13 &a13, const _Tp14 &a14)
template<typename _Tp0 , typename _Tp1 , typename _Tp2 , typename _Tp3 , typename _Tp4 , typename _Tp5 , typename _Tp6 , typename _Tp7 , typename _Tp8 , typename _Tp9 , typename _Tp10 , typename _Tp11 , typename _Tp12 , typename _Tp13 , typename _Tp14 , typename _Tp15 >
Kernel & | args (const _Tp0 &a0, const _Tp1 &a1, const _Tp2 &a2, const _Tp3 &a3, const _Tp4 &a4, const _Tp5 &a5, const _Tp6 &a6, const _Tp7 &a7, const _Tp8 &a8, const _Tp9 &a9, const _Tp10 &a10, const _Tp11 &a11, const _Tp12 &a12, const _Tp13 &a13, const _Tp14 &a14, const _Tp15 &a15)
bool | compileWorkGroupSize (size_t wsz[]) const
bool | create (const char *kname, const Program &prog)
bool | create (const char *kname, const ProgramSource &prog, const String &buildopts, String *errmsg=0)
bool | empty () const
size_t | localMemSize () const
Kernel & | operator= (const Kernel &k)
size_t | preferedWorkGroupSizeMultiple () const
void * | ptr () const
bool | run (int dims, size_t globalsize[], size_t localsize[], bool sync, const Queue &q=Queue())
| Run the OpenCL kernel. More...
int64 | runProfiling (int dims, size_t globalsize[], size_t localsize[], const Queue &q=Queue())
| Similar to synchronized run() call with returning of kernel execution time Separate OpenCL command queue may be used (with CL_QUEUE_PROFILING_ENABLE) More...
bool | runTask (bool sync, const Queue &q=Queue())
int | set (int i, const void *value, size_t sz)
int | set (int i, const Image2D &image2D)
int | set (int i, const UMat &m)
int | set (int i, const KernelArg &arg)
template<typename _Tp >
int | set (int i, const _Tp &value)
size_t | workGroupSize () const

## Protected Attributes
Impl * | p

## Constructor & Destructor Documentation

## ◆ Kernel() [1/4]

cv::ocl::Kernel::Kernel | ( |  | ) |

## ◆ Kernel() [2/4]

cv::ocl::Kernel::Kernel | ( | const char * | kname,
|  | const Program & | prog
| ) |  |

## ◆ Kernel() [3/4]

cv::ocl::Kernel::Kernel | ( | const char * | kname,
|  | const ProgramSource & | prog,
|  | const String & | buildopts = `String()`,
|  | String * | errmsg = `0`
| ) |  |

## ◆ ~Kernel()

cv::ocl::Kernel::~Kernel | ( |  | ) |

## ◆ Kernel() [4/4]

cv::ocl::Kernel::Kernel | ( | const Kernel & | k | ) |

## Member Function Documentation

## ◆ args() [1/16]

template<typename _Tp0 >

Kernel& cv::ocl::Kernel::args | ( | const _Tp0 & | a0 | ) |
| inline

## ◆ args() [2/16]

template<typename _Tp0 , typename _Tp1 >

Kernel& cv::ocl::Kernel::args | ( | const _Tp0 & | a0,
|  | const _Tp1 & | a1
| ) |  |
| inline

## ◆ args() [3/16]

template<typename _Tp0 , typename _Tp1 , typename _Tp2 >

Kernel& cv::ocl::Kernel::args | ( | const _Tp0 & | a0,
|  | const _Tp1 & | a1,
|  | const _Tp2 & | a2
| ) |  |
| inline

## ◆ args() [4/16]

template<typename _Tp0 , typename _Tp1 , typename _Tp2 , typename _Tp3 >

Kernel& cv::ocl::Kernel::args | ( | const _Tp0 & | a0,
|  | const _Tp1 & | a1,
|  | const _Tp2 & | a2,
|  | const _Tp3 & | a3
| ) |  |
| inline

## ◆ args() [5/16]

template<typename _Tp0 , typename _Tp1 , typename _Tp2 , typename _Tp3 , typename _Tp4 >

Kernel& cv::ocl::Kernel::args | ( | const _Tp0 & | a0,
|  | const _Tp1 & | a1,
|  | const _Tp2 & | a2,
|  | const _Tp3 & | a3,
|  | const _Tp4 & | a4
| ) |  |
| inline

## ◆ args() [6/16]

template<typename _Tp0 , typename _Tp1 , typename _Tp2 , typename _Tp3 , typename _Tp4 , typename _Tp5 >

Kernel& cv::ocl::Kernel::args | ( | const _Tp0 & | a0,
|  | const _Tp1 & | a1,
|  | const _Tp2 & | a2,
|  | const _Tp3 & | a3,
|  | const _Tp4 & | a4,
|  | const _Tp5 & | a5
| ) |  |
| inline

## ◆ args() [7/16]

template<typename _Tp0 , typename _Tp1 , typename _Tp2 , typename _Tp3 , typename _Tp4 , typename _Tp5 , typename _Tp6 >

Kernel& cv::ocl::Kernel::args | ( | const _Tp0 & | a0,
|  | const _Tp1 & | a1,
|  | const _Tp2 & | a2,
|  | const _Tp3 & | a3,
|  | const _Tp4 & | a4,
|  | const _Tp5 & | a5,
|  | const _Tp6 & | a6
| ) |  |
| inline

## ◆ args() [8/16]

template<typename _Tp0 , typename _Tp1 , typename _Tp2 , typename _Tp3 , typename _Tp4 , typename _Tp5 , typename _Tp6 , typename _Tp7 >

Kernel& cv::ocl::Kernel::args | ( | const _Tp0 & | a0,
|  | const _Tp1 & | a1,
|  | const _Tp2 & | a2,
|  | const _Tp3 & | a3,
|  | const _Tp4 & | a4,
|  | const _Tp5 & | a5,
|  | const _Tp6 & | a6,
|  | const _Tp7 & | a7
| ) |  |
| inline

## ◆ args() [9/16]

template<typename _Tp0 , typename _Tp1 , typename _Tp2 , typename _Tp3 , typename _Tp4 , typename _Tp5 , typename _Tp6 , typename _Tp7 , typename _Tp8 >

Kernel& cv::ocl::Kernel::args | ( | const _Tp0 & | a0,
|  | const _Tp1 & | a1,
|  | const _Tp2 & | a2,
|  | const _Tp3 & | a3,
|  | const _Tp4 & | a4,
|  | const _Tp5 & | a5,
|  | const _Tp6 & | a6,
|  | const _Tp7 & | a7,
|  | const _Tp8 & | a8
| ) |  |
| inline

## ◆ args() [10/16]

template<typename _Tp0 , typename _Tp1 , typename _Tp2 , typename _Tp3 , typename _Tp4 , typename _Tp5 , typename _Tp6 , typename _Tp7 , typename _Tp8 , typename _Tp9 >

Kernel& cv::ocl::Kernel::args | ( | const _Tp0 & | a0,
|  | const _Tp1 & | a1,
|  | const _Tp2 & | a2,
|  | const _Tp3 & | a3,
|  | const _Tp4 & | a4,
|  | const _Tp5 & | a5,
|  | const _Tp6 & | a6,
|  | const _Tp7 & | a7,
|  | const _Tp8 & | a8,
|  | const _Tp9 & | a9
| ) |  |
| inline

## ◆ args() [11/16]

template<typename _Tp0 , typename _Tp1 , typename _Tp2 , typename _Tp3 , typename _Tp4 , typename _Tp5 , typename _Tp6 , typename _Tp7 , typename _Tp8 , typename _Tp9 , typename _Tp10 >

Kernel& cv::ocl::Kernel::args | ( | const _Tp0 & | a0,
|  | const _Tp1 & | a1,
|  | const _Tp2 & | a2,
|  | const _Tp3 & | a3,
|  | const _Tp4 & | a4,
|  | const _Tp5 & | a5,
|  | const _Tp6 & | a6,
|  | const _Tp7 & | a7,
|  | const _Tp8 & | a8,
|  | const _Tp9 & | a9,
|  | const _Tp10 & | a10
| ) |  |
| inline

## ◆ args() [12/16]

template<typename _Tp0 , typename _Tp1 , typename _Tp2 , typename _Tp3 , typename _Tp4 , typename _Tp5 , typename _Tp6 , typename _Tp7 , typename _Tp8 , typename _Tp9 , typename _Tp10 , typename _Tp11 >

Kernel& cv::ocl::Kernel::args | ( | const _Tp0 & | a0,
|  | const _Tp1 & | a1,
|  | const _Tp2 & | a2,
|  | const _Tp3 & | a3,
|  | const _Tp4 & | a4,
|  | const _Tp5 & | a5,
|  | const _Tp6 & | a6,
|  | const _Tp7 & | a7,
|  | const _Tp8 & | a8,
|  | const _Tp9 & | a9,
|  | const _Tp10 & | a10,
|  | const _Tp11 & | a11
| ) |  |
| inline

## ◆ args() [13/16]

template<typename _Tp0 , typename _Tp1 , typename _Tp2 , typename _Tp3 , typename _Tp4 , typename _Tp5 , typename _Tp6 , typename _Tp7 , typename _Tp8 , typename _Tp9 , typename _Tp10 , typename _Tp11 , typename _Tp12 >

Kernel& cv::ocl::Kernel::args | ( | const _Tp0 & | a0,
|  | const _Tp1 & | a1,
|  | const _Tp2 & | a2,
|  | const _Tp3 & | a3,
|  | const _Tp4 & | a4,
|  | const _Tp5 & | a5,
|  | const _Tp6 & | a6,
|  | const _Tp7 & | a7,
|  | const _Tp8 & | a8,
|  | const _Tp9 & | a9,
|  | const _Tp10 & | a10,
|  | const _Tp11 & | a11,
|  | const _Tp12 & | a12
| ) |  |
| inline

## ◆ args() [14/16]

template<typename _Tp0 , typename _Tp1 , typename _Tp2 , typename _Tp3 , typename _Tp4 , typename _Tp5 , typename _Tp6 , typename _Tp7 , typename _Tp8 , typename _Tp9 , typename _Tp10 , typename _Tp11 , typename _Tp12 , typename _Tp13 >

Kernel& cv::ocl::Kernel::args | ( | const _Tp0 & | a0,
|  | const _Tp1 & | a1,
|  | const _Tp2 & | a2,
|  | const _Tp3 & | a3,
|  | const _Tp4 & | a4,
|  | const _Tp5 & | a5,
|  | const _Tp6 & | a6,
|  | const _Tp7 & | a7,
|  | const _Tp8 & | a8,
|  | const _Tp9 & | a9,
|  | const _Tp10 & | a10,
|  | const _Tp11 & | a11,
|  | const _Tp12 & | a12,
|  | const _Tp13 & | a13
| ) |  |
| inline

## ◆ args() [15/16]

template<typename _Tp0 , typename _Tp1 , typename _Tp2 , typename _Tp3 , typename _Tp4 , typename _Tp5 , typename _Tp6 , typename _Tp7 , typename _Tp8 , typename _Tp9 , typename _Tp10 , typename _Tp11 , typename _Tp12 , typename _Tp13 , typename _Tp14 >

Kernel& cv::ocl::Kernel::args | ( | const _Tp0 & | a0,
|  | const _Tp1 & | a1,
|  | const _Tp2 & | a2,
|  | const _Tp3 & | a3,
|  | const _Tp4 & | a4,
|  | const _Tp5 & | a5,
|  | const _Tp6 & | a6,
|  | const _Tp7 & | a7,
|  | const _Tp8 & | a8,
|  | const _Tp9 & | a9,
|  | const _Tp10 & | a10,
|  | const _Tp11 & | a11,
|  | const _Tp12 & | a12,
|  | const _Tp13 & | a13,
|  | const _Tp14 & | a14
| ) |  |
| inline

## ◆ args() [16/16]

template<typename _Tp0 , typename _Tp1 , typename _Tp2 , typename _Tp3 , typename _Tp4 , typename _Tp5 , typename _Tp6 , typename _Tp7 , typename _Tp8 , typename _Tp9 , typename _Tp10 , typename _Tp11 , typename _Tp12 , typename _Tp13 , typename _Tp14 , typename _Tp15 >

Kernel& cv::ocl::Kernel::args | ( | const _Tp0 & | a0,
|  | const _Tp1 & | a1,
|  | const _Tp2 & | a2,
|  | const _Tp3 & | a3,
|  | const _Tp4 & | a4,
|  | const _Tp5 & | a5,
|  | const _Tp6 & | a6,
|  | const _Tp7 & | a7,
|  | const _Tp8 & | a8,
|  | const _Tp9 & | a9,
|  | const _Tp10 & | a10,
|  | const _Tp11 & | a11,
|  | const _Tp12 & | a12,
|  | const _Tp13 & | a13,
|  | const _Tp14 & | a14,
|  | const _Tp15 & | a15
| ) |  |
| inline

## ◆ compileWorkGroupSize()

bool cv::ocl::Kernel::compileWorkGroupSize | ( | size_t | wsz[] | ) | const

## ◆ create() [1/2]

bool cv::ocl::Kernel::create | ( | const char * | kname,
|  | const Program & | prog
| ) |  |

## ◆ create() [2/2]

bool cv::ocl::Kernel::create | ( | const char * | kname,
|  | const ProgramSource & | prog,
|  | const String & | buildopts,
|  | String * | errmsg = `0`
| ) |  |

## ◆ empty()

bool cv::ocl::Kernel::empty | ( |  | ) | const

## ◆ localMemSize()

size_t cv::ocl::Kernel::localMemSize | ( |  | ) | const

## ◆ operator=()

Kernel& cv::ocl::Kernel::operator= | ( | const Kernel & | k | ) |

## ◆ preferedWorkGroupSizeMultiple()

size_t cv::ocl::Kernel::preferedWorkGroupSizeMultiple | ( |  | ) | const

## ◆ ptr()

void* cv::ocl::Kernel::ptr | ( |  | ) | const

## ◆ run()

bool cv::ocl::Kernel::run | ( | int | dims,
|  | size_t | globalsize[],
|  | size_t | localsize[],
|  | bool | sync,
|  | const Queue & | q = `Queue()`
| ) |  |

Run the OpenCL kernel.

Parameters

  dims | the work problem dimensions. It is the length of globalsize and localsize. It can be either 1, 2 or 3.
  globalsize | work items for each dimension. It is not the final globalsize passed to OpenCL. Each dimension will be adjusted to the nearest integer divisible by the corresponding value in localsize. If localsize is NULL, it will still be adjusted depending on dims. The adjusted values are greater than or equal to the original values.
  localsize | work-group size for each dimension.
  sync | specify whether to wait for OpenCL computation to finish before return.
  q | command queue

## ◆ runProfiling()

int64 cv::ocl::Kernel::runProfiling | ( | int | dims,
|  | size_t | globalsize[],
|  | size_t | localsize[],
|  | const Queue & | q = `Queue()`
| ) |  |

Similar to synchronized run() call with returning of kernel execution time Separate OpenCL command queue may be used (with CL_QUEUE_PROFILING_ENABLE)

Returns
  Execution time in nanoseconds or negative number on error

## ◆ runTask()

bool cv::ocl::Kernel::runTask | ( | bool | sync,
|  | const Queue & | q = `Queue()`
| ) |  |

## ◆ set() [1/5]

int cv::ocl::Kernel::set | ( | int | i,
|  | const void * | value,
|  | size_t | sz
| ) |  |

## ◆ set() [2/5]

int cv::ocl::Kernel::set | ( | int | i,
|  | const Image2D & | image2D
| ) |  |

## ◆ set() [3/5]

int cv::ocl::Kernel::set | ( | int | i,
|  | const UMat & | m
| ) |  |

## ◆ set() [4/5]

int cv::ocl::Kernel::set | ( | int | i,
|  | const KernelArg & | arg
| ) |  |

## ◆ set() [5/5]

template<typename _Tp >

int cv::ocl::Kernel::set | ( | int | i,
|  | const _Tp & | value
| ) |  |
| inline

## ◆ workGroupSize()

size_t cv::ocl::Kernel::workGroupSize | ( |  | ) | const

## Member Data Documentation

## ◆ p

Impl* cv::ocl::Kernel::p
| protected

The documentation for this class was generated from the following file:

- core/include/opencv2/core/ocl.hpp