OpenPose  1.0.0rc2
OpenPose: A Real-Time Multi-Person Key-Point Detection And Multi-Threading C++ Library
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
cl::Kernel Class Reference

Class interface for cl_kernel. More...

#include <cl2.hpp>

Inherits cl::detail::Wrapper< cl_kernel >.

Public Member Functions

 Kernel (const Program &program, const char *name, cl_int *err=NULL)
 
 Kernel ()
 Default constructor - initializes to NULL. More...
 
 Kernel (const cl_kernel &kernel, bool retainObject=false)
 Constructor from cl_kernel - takes ownership. More...
 
Kerneloperator= (const cl_kernel &rhs)
 Assignment operator from cl_kernel - takes ownership. More...
 
 Kernel (const Kernel &kernel)
 Copy constructor to forward copy to the superclass correctly. Required for MSVC. More...
 
Kerneloperator= (const Kernel &kernel)
 Copy assignment to forward copy to the superclass correctly. Required for MSVC. More...
 
 Kernel (Kernel &&kernel) CL_HPP_NOEXCEPT_
 Move constructor to forward move to the superclass correctly. Required for MSVC. More...
 
Kerneloperator= (Kernel &&kernel)
 Move assignment to forward move to the superclass correctly. Required for MSVC. More...
 
template<typename T >
cl_int getInfo (cl_kernel_info name, T *param) const
 
template<cl_int name>
detail::param_traits
< detail::cl_kernel_info, name >
::param_type 
getInfo (cl_int *err=NULL) const
 
template<typename T >
cl_int getArgInfo (cl_uint argIndex, cl_kernel_arg_info name, T *param) const
 
template<cl_int name>
detail::param_traits
< detail::cl_kernel_arg_info,
name >::param_type 
getArgInfo (cl_uint argIndex, cl_int *err=NULL) const
 
template<typename T >
cl_int getWorkGroupInfo (const Device &device, cl_kernel_work_group_info name, T *param) const
 
template<cl_int name>
detail::param_traits
< detail::cl_kernel_work_group_info,
name >::param_type 
getWorkGroupInfo (const Device &device, cl_int *err=NULL) const
 
template<typename T , class D >
cl_int setArg (cl_uint index, const cl::pointer< T, D > &argPtr)
 setArg overload taking a shared_ptr type More...
 
template<typename T , class Alloc >
cl_int setArg (cl_uint index, const cl::vector< T, Alloc > &argPtr)
 setArg overload taking a vector type. More...
 
template<typename T >
std::enable_if
< std::is_pointer< T >::value,
cl_int >::type 
setArg (cl_uint index, const T argPtr)
 setArg overload taking a pointer type More...
 
template<typename T >
std::enable_if
<!std::is_pointer< T >::value,
cl_int >::type 
setArg (cl_uint index, const T &value)
 setArg overload taking a POD type More...
 
cl_int setArg (cl_uint index, size_type size, const void *argPtr)
 
cl_int setSVMPointers (const vector< void * > &pointerList)
 
template<int ArrayLength>
cl_int setSVMPointers (const std::array< void *, ArrayLength > &pointerList)
 
cl_int enableFineGrainedSystemSVM (bool svmEnabled)
 Enable fine-grained system SVM. More...
 
template<int index, int ArrayLength, class D , typename T0 , typename... Ts>
void setSVMPointersHelper (std::array< void *, ArrayLength > &pointerList, const pointer< T0, D > &t0, Ts...ts)
 
template<int index, int ArrayLength, typename T0 , typename... Ts>
std::enable_if
< std::is_pointer< T0 >::value,
void >::type 
setSVMPointersHelper (std::array< void *, ArrayLength > &pointerList, T0 t0, Ts...ts)
 
template<int index, int ArrayLength, typename T0 , class D >
void setSVMPointersHelper (std::array< void *, ArrayLength > &pointerList, const pointer< T0, D > &t0)
 
template<int index, int ArrayLength, typename T0 >
std::enable_if
< std::is_pointer< T0 >::value,
void >::type 
setSVMPointersHelper (std::array< void *, ArrayLength > &pointerList, T0 t0)
 
template<typename T0 , typename... Ts>
cl_int setSVMPointers (const T0 &t0, Ts...ts)
 
- Public Member Functions inherited from cl::detail::Wrapper< cl_kernel >
 Wrapper ()
 
 Wrapper (const cl_type &obj, bool retainObject)
 
 Wrapper (const Wrapper< cl_type > &rhs)
 
 Wrapper (Wrapper< cl_type > &&rhs) CL_HPP_NOEXCEPT_
 
 ~Wrapper ()
 
Wrapper< cl_type > & operator= (const Wrapper< cl_type > &rhs)
 
Wrapper< cl_type > & operator= (Wrapper< cl_type > &&rhs)
 
Wrapper< cl_type > & operator= (const cl_type &rhs)
 
const cl_typeoperator() () const
 
cl_typeoperator() ()
 
const cl_type get () const
 
cl_type get ()
 

Additional Inherited Members

- Public Types inherited from cl::detail::Wrapper< cl_kernel >
typedef cl_kernel cl_type
 
- Protected Member Functions inherited from cl::detail::Wrapper< cl_kernel >
cl_int retain () const
 
cl_int release () const
 
- Protected Attributes inherited from cl::detail::Wrapper< cl_kernel >
cl_type object_
 

Detailed Description

Class interface for cl_kernel.

Note
Copies of these objects are shallow, meaning that the copy will refer to the same underlying cl_kernel as the original. For details, see clRetainKernel() and clReleaseKernel().
See Also
cl_kernel

Constructor & Destructor Documentation

cl::Kernel::Kernel ( const Program program,
const char *  name,
cl_int *  err = NULL 
)
inline
cl::Kernel::Kernel ( )
inline

Default constructor - initializes to NULL.

cl::Kernel::Kernel ( const cl_kernel &  kernel,
bool  retainObject = false 
)
inlineexplicit

Constructor from cl_kernel - takes ownership.

Parameters
retainObjectwill cause the constructor to retain its cl object. Defaults to false to maintain compatibility with earlier versions. This effectively transfers ownership of a refcount on the cl_kernel into the new Kernel object.
cl::Kernel::Kernel ( const Kernel kernel)
inline

Copy constructor to forward copy to the superclass correctly. Required for MSVC.

cl::Kernel::Kernel ( Kernel &&  kernel)
inline

Move constructor to forward move to the superclass correctly. Required for MSVC.

Member Function Documentation

cl_int cl::Kernel::enableFineGrainedSystemSVM ( bool  svmEnabled)
inline

Enable fine-grained system SVM.

Note
It is only possible to enable fine-grained system SVM if all devices in the context associated with kernel support it.
Parameters
svmEnabledTrue if fine-grained system SVM is requested. False otherwise.
Returns
CL_SUCCESS if the function was executed succesfully. CL_INVALID_OPERATION if no devices in the context support fine-grained system SVM.
See Also
clSetKernelExecInfo
template<typename T >
cl_int cl::Kernel::getArgInfo ( cl_uint  argIndex,
cl_kernel_arg_info  name,
T *  param 
) const
inline
template<cl_int name>
detail::param_traits<detail::cl_kernel_arg_info, name>::param_type cl::Kernel::getArgInfo ( cl_uint  argIndex,
cl_int *  err = NULL 
) const
inline
template<typename T >
cl_int cl::Kernel::getInfo ( cl_kernel_info  name,
T *  param 
) const
inline
template<cl_int name>
detail::param_traits<detail::cl_kernel_info, name>::param_type cl::Kernel::getInfo ( cl_int *  err = NULL) const
inline
template<typename T >
cl_int cl::Kernel::getWorkGroupInfo ( const Device device,
cl_kernel_work_group_info  name,
T *  param 
) const
inline
template<cl_int name>
detail::param_traits<detail::cl_kernel_work_group_info, name>::param_type cl::Kernel::getWorkGroupInfo ( const Device device,
cl_int *  err = NULL 
) const
inline
Kernel& cl::Kernel::operator= ( const cl_kernel &  rhs)
inline

Assignment operator from cl_kernel - takes ownership.

This effectively transfers ownership of a refcount on the rhs and calls clReleaseKernel() on the value previously held by this instance.

Kernel& cl::Kernel::operator= ( const Kernel kernel)
inline

Copy assignment to forward copy to the superclass correctly. Required for MSVC.

Kernel& cl::Kernel::operator= ( Kernel &&  kernel)
inline

Move assignment to forward move to the superclass correctly. Required for MSVC.

template<typename T , class D >
cl_int cl::Kernel::setArg ( cl_uint  index,
const cl::pointer< T, D > &  argPtr 
)
inline

setArg overload taking a shared_ptr type

template<typename T , class Alloc >
cl_int cl::Kernel::setArg ( cl_uint  index,
const cl::vector< T, Alloc > &  argPtr 
)
inline

setArg overload taking a vector type.

template<typename T >
std::enable_if<std::is_pointer<T>::value, cl_int>::type cl::Kernel::setArg ( cl_uint  index,
const T  argPtr 
)
inline

setArg overload taking a pointer type

template<typename T >
std::enable_if<!std::is_pointer<T>::value, cl_int>::type cl::Kernel::setArg ( cl_uint  index,
const T &  value 
)
inline

setArg overload taking a POD type

cl_int cl::Kernel::setArg ( cl_uint  index,
size_type  size,
const void *  argPtr 
)
inline
cl_int cl::Kernel::setSVMPointers ( const vector< void * > &  pointerList)
inline

Specify a vector of SVM pointers that the kernel may access in addition to its arguments.

template<int ArrayLength>
cl_int cl::Kernel::setSVMPointers ( const std::array< void *, ArrayLength > &  pointerList)
inline

Specify a std::array of SVM pointers that the kernel may access in addition to its arguments.

template<typename T0 , typename... Ts>
cl_int cl::Kernel::setSVMPointers ( const T0 &  t0,
Ts...  ts 
)
inline
template<int index, int ArrayLength, class D , typename T0 , typename... Ts>
void cl::Kernel::setSVMPointersHelper ( std::array< void *, ArrayLength > &  pointerList,
const pointer< T0, D > &  t0,
Ts...  ts 
)
inline
template<int index, int ArrayLength, typename T0 , typename... Ts>
std::enable_if<std::is_pointer<T0>::value, void>::type cl::Kernel::setSVMPointersHelper ( std::array< void *, ArrayLength > &  pointerList,
T0  t0,
Ts...  ts 
)
inline
template<int index, int ArrayLength, typename T0 , class D >
void cl::Kernel::setSVMPointersHelper ( std::array< void *, ArrayLength > &  pointerList,
const pointer< T0, D > &  t0 
)
inline
template<int index, int ArrayLength, typename T0 >
std::enable_if<std::is_pointer<T0>::value, void>::type cl::Kernel::setSVMPointersHelper ( std::array< void *, ArrayLength > &  pointerList,
T0  t0 
)
inline

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