public extern static OpenCLErrorCode GetKernelWorkGroupInfo( CLKernelHandle kernel, CLDeviceHandle device, OpenCLKernelWorkGroupInfo param_name, IntPtr param_value_size, IntPtr param_value, out IntPtr param_value_size_ret);
public extern static OpenCLErrorCode EnqueueNDRangeKernel( CLCommandQueueHandle command_queue, CLKernelHandle kernel, Int32 work_dim, [MarshalAs(UnmanagedType.LPArray)] IntPtr[] global_work_offset, [MarshalAs(UnmanagedType.LPArray)] IntPtr[] global_work_size, [MarshalAs(UnmanagedType.LPArray)] IntPtr[] local_work_size, Int32 num_events_in_wait_list, [MarshalAs(UnmanagedType.LPArray)] CLEventHandle[] event_wait_list, [Out, MarshalAs(UnmanagedType.LPArray, SizeConst = 1)] CLEventHandle[] new_event);
public extern static OpenCLErrorCode EnqueueTask( CLCommandQueueHandle command_queue, CLKernelHandle kernel, Int32 num_events_in_wait_list, [MarshalAs(UnmanagedType.LPArray)] CLEventHandle[] event_wait_list, [Out, MarshalAs(UnmanagedType.LPArray, SizeConst=1)] CLEventHandle[] new_event);
public extern static OpenCLErrorCode EnqueueNDRangeKernel( CLCommandQueueHandle command_queue, CLKernelHandle kernel, Int32 work_dim, [MarshalAs(UnmanagedType.LPArray)] IntPtr[] global_work_offset, [MarshalAs(UnmanagedType.LPArray)] IntPtr[] global_work_size, [MarshalAs(UnmanagedType.LPArray)] IntPtr[] local_work_size, Int32 num_events_in_wait_list, [MarshalAs(UnmanagedType.LPArray)] CLEventHandle[] event_wait_list, [Out, MarshalAs(UnmanagedType.LPArray, SizeConst=1)] CLEventHandle[] new_event);
public extern static OpenCLErrorCode GetKernelWorkGroupInfo( CLKernelHandle kernel, CLDeviceHandle device, OpenCLKernelWorkGroupInfo param_name, IntPtr param_value_size, IntPtr param_value, out IntPtr param_value_size_ret);
public extern static OpenCLErrorCode GetKernelInfo( CLKernelHandle kernel, OpenCLKernelInfo param_name, IntPtr param_value_size, IntPtr param_value, out IntPtr param_value_size_ret);
public extern static OpenCLErrorCode SetKernelArg( CLKernelHandle kernel, Int32 arg_index, IntPtr arg_size, IntPtr arg_value);
public extern static OpenCLErrorCode ReleaseKernel( CLKernelHandle kernel);
public extern static OpenCLErrorCode EnqueueTask( CLCommandQueueHandle command_queue, CLKernelHandle kernel, Int32 num_events_in_wait_list, [MarshalAs(UnmanagedType.LPArray)] CLEventHandle[] event_wait_list, [Out, MarshalAs(UnmanagedType.LPArray, SizeConst = 1)] CLEventHandle[] new_event);
public extern static OpenCLErrorCode GetKernelInfo( CLKernelHandle kernel, OpenCLKernelInfo param_name, IntPtr param_value_size, IntPtr param_value, out IntPtr param_value_size_ret);
public extern static OpenCLErrorCode SetKernelArg( CLKernelHandle kernel, Int32 arg_index, IntPtr arg_size, IntPtr arg_value);
public extern static OpenCLErrorCode ReleaseKernel( CLKernelHandle kernel);
/// <summary> /// Creates a <see cref="OpenCLKernel"/> for every <c>kernel</c> function in <see cref="OpenCLProgram"/>. /// </summary> /// <returns> The collection of created <see cref="OpenCLKernel"/>s. </returns> /// <remarks> <see cref="OpenCLKernel"/>s are not created for any <c>kernel</c> functions in <see cref="OpenCLProgram"/> that do not have the same function definition across all <see cref="OpenCLProgram.Devices"/> for which a program executable has been successfully built. </remarks> public ICollection<OpenCLKernel> CreateAllKernels() { ICollection<OpenCLKernel> kernels = new Collection<OpenCLKernel>(); int kernelsCount = 0; CLKernelHandle[] kernelHandles; OpenCLErrorCode error = CL10.CreateKernelsInProgram(Handle, 0, null, out kernelsCount); OpenCLException.ThrowOnError(error); kernelHandles = new CLKernelHandle[kernelsCount]; error = CL10.CreateKernelsInProgram(Handle, kernelsCount, kernelHandles, out kernelsCount); OpenCLException.ThrowOnError(error); for (int i = 0; i < kernelsCount; i++) kernels.Add(new OpenCLKernel(kernelHandles[i], this)); return kernels; }