OpenCL C++ Bindings: cl::Kernel Class Reference

OpenCL C++ Bindings

Public Member Functions | List of all members
cl::Kernel Class Reference

Class interface for cl_kernel. More...

Inheritance diagram for cl::Kernel:

## Public Member Functions
| Kernel (const Program &program, const char *name, cl_int *err=NULL)
| Kernel ()
| Default constructor - initializes to NULL.
| Kernel (const cl_kernel &kernel, bool retainObject=false)
| Constructor from cl_kernel - takes ownership. More...
Kernel & | operator= (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.
Kernel & | operator= (const Kernel &kernel)
| Copy assignment to forward copy to the superclass correctly. Required for MSVC.
| Kernel (Kernel &&kernel) CL_HPP_NOEXCEPT_
| Move constructor to forward move to the superclass correctly. Required for MSVC.
Kernel & | operator= (Kernel &&kernel)
| Move assignment to forward move to the superclass correctly. Required for MSVC.
template<typename T >
cl_int | getInfo (cl_kernel_info name, T *param) const
template<cl_kernel_info 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_kernel_arg_info 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_kernel_work_group_info name>
detail::param_traits< detail::cl_kernel_work_group_info, name >::param_type | getWorkGroupInfo (const Device &device, cl_int *err=NULL) const
cl_int | getSubGroupInfo (const cl::Device &dev, cl_kernel_sub_group_info name, const cl::NDRange &range, size_type *param) const
template<cl_kernel_sub_group_info name>
size_type | getSubGroupInfo (const cl::Device &dev, const cl::NDRange &range, 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
template<typename T , class Alloc >
cl_int | setArg (cl_uint index, const cl::vector< T, Alloc > &argPtr)
| setArg overload taking a vector type.
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
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
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 T1 , typename... Ts>
void | setSVMPointersHelper (std::array< void *, ArrayLength > &pointerList, const pointer< T0, D > &t0, const pointer< T1, D > &t1, Ts &... ts)
template<int index, int ArrayLength, typename T0 , typename T1 , typename... Ts>
std::enable_if< std::is_pointer< T0 >::value, void >::type | setSVMPointersHelper (std::array< void *, ArrayLength > &pointerList, T0 t0, T1 t1, 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)
template<typename T >
cl_int | setExecInfo (cl_kernel_exec_info param_name, const T &val)
template<cl_kernel_exec_info name>
cl_int | setExecInfo (typename detail::param_traits< detail::cl_kernel_exec_info, name >::param_type &val)
Kernel | clone ()
Public Member Functions inherited from cl::detail::Wrapper< cl_kernel >
| Wrapper (const cl_type &obj, bool retainObject)
| Wrapper (const Wrapper< cl_type > &rhs)
| Wrapper (Wrapper< cl_type > &&rhs) CL_HPP_NOEXCEPT_
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_type & | operator() () const
cl_type & | operator() ()
cl_type | get () const

## 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

Definition at line 5883 of file opencl.hpp.

## Constructor & Destructor Documentation

## ◆ Kernel()

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

Constructor from cl_kernel - takes ownership.

Parameters

  retainObject | will 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.

Definition at line 5899 of file opencl.hpp.

## Member Function Documentation

## ◆ clone()

Kernel cl::Kernel::clone | ( |  | ) |
| inline

Make a deep copy of the kernel object including its arguments.

Returns
  A new kernel object with internal state entirely separate from that of the original but with any arguments set on the original intact.

Definition at line 6218 of file opencl.hpp.

## ◆ enableFineGrainedSystemSVM()

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

  svmEnabled | True 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

Definition at line 6138 of file opencl.hpp.

## ◆ operator=()

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.

Definition at line 5907 of file opencl.hpp.

## ◆ setSVMPointers() [1/2]

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.

Definition at line 6117 of file opencl.hpp.

## ◆ setSVMPointers() [2/2]

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.

Definition at line 6102 of file opencl.hpp.

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

- opencl.hpp