Newer
Older
#include "error.h"
#ifndef __PYOPENCL_KERNEL_H
#define __PYOPENCL_KERNEL_H
namespace pyopencl {
class device;
// {{{ kernel
extern template void print_arg<cl_kernel>(std::ostream&,
const cl_kernel&, bool);
extern template void print_buf<cl_kernel>(std::ostream&, const cl_kernel*,
size_t, ArgType, bool, bool);
class kernel : public clobj<cl_kernel> {
public:
PYOPENCL_DEF_CL_CLASS(KERNEL);
PYOPENCL_INLINE
kernel(cl_kernel knl, bool retain)
: clobj(knl)
{
if (retain) {
pyopencl_call_guarded(clRetainKernel, this);
}
}
~kernel();
generic_info get_info(cl_uint param) const;
PYOPENCL_USE_RESULT generic_info
get_work_group_info(cl_kernel_work_group_info param,
const device *dev) const;
#if PYOPENCL_CL_VERSION >= 0x1020
PYOPENCL_USE_RESULT generic_info
get_arg_info(cl_uint idx, cl_kernel_arg_info param) const;
#endif
extern template void print_clobj<kernel>(std::ostream&, const kernel*);