예제 #1
0
 public extern static ComputeErrorCode GetKernelWorkGroupInfo(
     CLKernelHandle kernel,
     CLDeviceHandle device,
     ComputeKernelWorkGroupInfo param_name,
     IntPtr param_value_size,
     IntPtr param_value,
     out IntPtr param_value_size_ret);
예제 #2
0
 public extern static ComputeErrorCode 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);
예제 #3
0
 public ComputeErrorCode GetKernelInfo(CLKernelHandle kernel, ComputeKernelInfo param_name, IntPtr param_value_size, IntPtr param_value, out IntPtr param_value_size_ret)
 {
     return StaticGetKernelInfo(kernel, param_name, param_value_size, param_value, out param_value_size_ret);
 }
예제 #4
0
 public static extern ComputeErrorCode StaticReleaseKernel(CLKernelHandle kernel);
예제 #5
0
 public ComputeErrorCode EnqueueTask(CLCommandQueueHandle command_queue, CLKernelHandle kernel, Int32 num_events_in_wait_list, [MarshalAs(UnmanagedType.LPArray)] CLEventHandle[] event_wait_list, out CLEventHandle new_event)
 {
     return StaticEnqueueTask(command_queue, kernel, num_events_in_wait_list, event_wait_list, out new_event);
 }
예제 #6
0
 public static extern ComputeErrorCode SetKernelArg(
     CLKernelHandle kernel,
     Int32 arg_index,
     IntPtr arg_size,
     ref CLMemoryHandle arg_value);
예제 #7
0
 public ComputeErrorCode SetKernelArgSvmPointer(CLKernelHandle kernel, int arg_index, IntPtr arg_value)
 {
     throw new NotImplementedException();
 }
예제 #8
0
 public static extern ComputeErrorCode GetKernelInfo(
     CLKernelHandle kernel,
     ComputeKernelInfo param_name,
     IntPtr param_value_size,
     IntPtr param_value,
     out IntPtr param_value_size_ret);
예제 #9
0
 public extern static ComputeErrorCode GetKernelInfo(
     CLKernelHandle kernel,
     ComputeKernelInfo param_name,
     IntPtr param_value_size,
     IntPtr param_value,
     out IntPtr param_value_size_ret);
예제 #10
0
 public static extern ComputeErrorCode StaticSetKernelExecInfo(CLKernelHandle kernel, ComputeExecInfo param_name, IntPtr param_value_size, IntPtr param_value);
예제 #11
0
 public new ComputeErrorCode SetKernelArgSvmPointer(CLKernelHandle kernel, Int32 arg_index, IntPtr arg_value)
 {
     return StaticSetKernelArgSvmPointer(kernel, arg_index, arg_value);
 }
예제 #12
0
 ComputeErrorCode ICL10.EnqueueNDRangeKernel(CLCommandQueueHandle command_queue, CLKernelHandle kernel, int work_dim,
                                             IntPtr[] global_work_offset, IntPtr[] global_work_size, IntPtr[] local_work_size,
                                             int num_events_in_wait_list, CLEventHandle[] event_wait_list,
                                             CLEventHandle[] new_event)
 {
     return(EnqueueNDRangeKernel(command_queue, kernel, work_dim, global_work_offset, global_work_size, local_work_size, num_events_in_wait_list, event_wait_list, new_event));
 }
예제 #13
0
 ComputeErrorCode ICL10.EnqueueTask(CLCommandQueueHandle command_queue, CLKernelHandle kernel, int num_events_in_wait_list,
                                    CLEventHandle[] event_wait_list, CLEventHandle[] new_event)
 {
     return(EnqueueTask(command_queue, kernel, num_events_in_wait_list, event_wait_list, new_event));
 }
예제 #14
0
 ComputeErrorCode ICL10.GetKernelWorkGroupInfo(CLKernelHandle kernel, CLDeviceHandle device,
                                               ComputeKernelWorkGroupInfo param_name, IntPtr param_value_size,
                                               IntPtr param_value, out IntPtr param_value_size_ret)
 {
     return(GetKernelWorkGroupInfo(kernel, device, param_name, param_value_size, param_value, out param_value_size_ret));
 }
예제 #15
0
 ComputeErrorCode ICL10.GetKernelInfo(CLKernelHandle kernel, ComputeKernelInfo param_name, IntPtr param_value_size,
                                      IntPtr param_value, out IntPtr param_value_size_ret)
 {
     return(GetKernelInfo(kernel, param_name, param_value_size, param_value, out param_value_size_ret));
 }
예제 #16
0
 ComputeErrorCode ICL10.SetKernelArg(CLKernelHandle kernel, int arg_index, IntPtr arg_size, IntPtr arg_value)
 {
     return(SetKernelArg(kernel, arg_index, arg_size, arg_value));
 }
예제 #17
0
 public ComputeErrorCode ReleaseKernel(CLKernelHandle kernel)
 {
     return StaticReleaseKernel(kernel);
 }
예제 #18
0
 public new ComputeErrorCode SetKernelExecInfo(CLKernelHandle kernel, ComputeExecInfo param_name, IntPtr param_value_size, IntPtr param_value)
 {
     return StaticSetKernelExecInfo(kernel, param_name, param_value_size, param_value);
 }
예제 #19
0
 public static extern ComputeErrorCode 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);
예제 #20
0
 new ComputeErrorCode EnqueueTask(CLCommandQueueHandle command_queue, CLKernelHandle kernel, Int32 num_events_in_wait_list, [MarshalAs(UnmanagedType.LPArray)] CLEventHandle[] event_wait_list, out CLEventHandle new_event)
 {
     Trace.WriteLine("WARNING! GetExtensionFunctionAddress has been deprecated in OpenCL 1.2.");
     return CL12.StaticEnqueueTask(command_queue, kernel, num_events_in_wait_list, event_wait_list, out new_event);
 }
예제 #21
0
 public static extern ComputeErrorCode RetainKernel(
     CLKernelHandle kernel);
예제 #22
0
 ComputeErrorCode ICL10.CreateKernelsInProgram(CLProgramHandle program, int num_kernels, CLKernelHandle[] kernels,
                                               out int num_kernels_ret)
 {
     return CreateKernelsInProgram(program, num_kernels, kernels, out num_kernels_ret);
 }
예제 #23
0
 ComputeErrorCode ICL10.ReleaseKernel(CLKernelHandle kernel)
 {
     return(ReleaseKernel(kernel));
 }
예제 #24
0
 ComputeErrorCode ICL10.EnqueueNDRangeKernel(CLCommandQueueHandle command_queue, CLKernelHandle kernel, int work_dim,
                                             IntPtr[] global_work_offset, IntPtr[] global_work_size, IntPtr[] local_work_size,
                                             int num_events_in_wait_list, CLEventHandle[] event_wait_list,
                                             CLEventHandle[] new_event)
 {
     return EnqueueNDRangeKernel(command_queue, kernel, work_dim, global_work_offset, global_work_size, local_work_size, num_events_in_wait_list, event_wait_list, new_event);
 }
예제 #25
0
 public ComputeErrorCode SetKernelArg(CLKernelHandle kernel, Int32 arg_index, IntPtr arg_size, IntPtr arg_value)
 {
     return StaticSetKernelArg(kernel, arg_index, arg_size, arg_value);
 }
예제 #26
0
 ComputeErrorCode ICL10.EnqueueTask(CLCommandQueueHandle command_queue, CLKernelHandle kernel, int num_events_in_wait_list,
                                    CLEventHandle[] event_wait_list, CLEventHandle[] new_event)
 {
     return EnqueueTask(command_queue, kernel, num_events_in_wait_list, event_wait_list, new_event);
 }
예제 #27
0
 public ComputeErrorCode SetKernelExecInfo(CLKernelHandle kernel, ComputeExecInfo param_name, IntPtr param_value_size, IntPtr param_value)
 {
     throw new NotImplementedException();
 }
예제 #28
0
 ComputeErrorCode ICL10.GetKernelInfo(CLKernelHandle kernel, ComputeKernelInfo param_name, IntPtr param_value_size,
                                      IntPtr param_value, out IntPtr param_value_size_ret)
 {
     return GetKernelInfo(kernel, param_name, param_value_size, param_value, out param_value_size_ret);
 }
예제 #29
0
 public ComputeErrorCode 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 CLEventHandle new_event)
 {
     return StaticEnqueueNDRangeKernel(command_queue, kernel, work_dim, global_work_offset, global_work_size, local_work_size, num_events_in_wait_list, event_wait_list, out new_event);
 }
예제 #30
0
 ComputeErrorCode ICL10.RetainKernel(CLKernelHandle kernel)
 {
     return RetainKernel(kernel);
 }
예제 #31
0
 public ComputeErrorCode GetKernelArgInfo(CLKernelHandle kernel, int arg_indx, ComputeKernelArgInfo param_name, IntPtr param_value_size, IntPtr param_value, out IntPtr param_value_size_ret)
 {
     throw new NotImplementedException();
 }
예제 #32
0
 ComputeErrorCode ICL10.SetKernelArg(CLKernelHandle kernel, int arg_index, IntPtr arg_size, IntPtr arg_value)
 {
     return SetKernelArg(kernel, arg_index, arg_size, arg_value);
 }
예제 #33
0
 public ComputeErrorCode GetKernelWorkGroupInfo(CLKernelHandle kernel, CLDeviceHandle device, ComputeKernelWorkGroupInfo param_name, IntPtr param_value_size, IntPtr param_value, out IntPtr param_value_size_ret)
 {
     return StaticGetKernelWorkGroupInfo(kernel, device, param_name, param_value_size, param_value, out param_value_size_ret);
 }
예제 #34
0
 public static extern ComputeErrorCode StaticGetKernelArgInfo(CLKernelHandle kernel, Int32 arg_indx, ComputeKernelArgInfo param_name, IntPtr param_value_size, IntPtr param_value, out IntPtr param_value_size_ret);
예제 #35
0
        /// <summary>
        /// Creates a <see cref="ComputeKernel"/> for every <c>kernel</c> function in <see cref="ComputeProgram"/>.
        /// </summary>
        /// <returns> The collection of created <see cref="ComputeKernel"/>s. </returns>
        /// <remarks> <see cref="ComputeKernel"/>s are not created for any <c>kernel</c> functions in <see cref="ComputeProgram"/> that do not have the same function definition across all <see cref="ComputeProgram.Devices"/> for which a program executable has been successfully built. </remarks>
        public ICollection<ComputeKernel> CreateAllKernels()
        {
            ICollection<ComputeKernel> kernels = new Collection<ComputeKernel>();
            int kernelsCount = 0;
            CLKernelHandle[] kernelHandles;

            ComputeErrorCode error = CLInterface.CL10.CreateKernelsInProgram(Handle, 0, null, out kernelsCount);
            ComputeException.ThrowOnError(error);

            kernelHandles = new CLKernelHandle[kernelsCount];
            error = CLInterface.CL10.CreateKernelsInProgram(Handle, kernelsCount, kernelHandles, out kernelsCount);
            ComputeException.ThrowOnError(error);

            for (int i = 0; i < kernelsCount; i++)
                kernels.Add(new ComputeKernel(kernelHandles[i], this));

            return kernels;
        }
예제 #36
0
 public new ComputeErrorCode GetKernelArgInfo(CLKernelHandle kernel, Int32 arg_indx, ComputeKernelArgInfo param_name, IntPtr param_value_size, IntPtr param_value, out IntPtr param_value_size_ret)
 {
     return StaticGetKernelArgInfo(kernel, arg_indx, param_name, param_value_size, param_value, out param_value_size_ret);
 }
예제 #37
0
 public static extern ComputeErrorCode 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);
예제 #38
0
 public static void SetKernelArgWrapper(CLKernelHandle kernel, int arg_index, IntPtr arg_size, IntPtr arg_value)
 {
     ComputeException.ThrowOnError(SetKernelArg(kernel, arg_index, arg_size, arg_value));
 }
예제 #39
0
 public static extern ComputeErrorCode GetKernelWorkGroupInfo(
     CLKernelHandle kernel,
     CLDeviceHandle device,
     ComputeKernelWorkGroupInfo param_name,
     IntPtr param_value_size,
     IntPtr param_value,
     out IntPtr param_value_size_ret);
예제 #40
0
 public extern static ComputeErrorCode 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);
예제 #41
0
 public static extern ComputeErrorCode SetKernelArg(
     CLKernelHandle kernel,
     Int32 arg_index,
     IntPtr arg_size,
     IntPtr arg_value);
예제 #42
0
 public extern static ComputeErrorCode SetKernelArg(
     CLKernelHandle kernel,
     Int32 arg_index,
     IntPtr arg_size,
     IntPtr arg_value);
예제 #43
0
 public static void ReleaseKernelWrapper(CLKernelHandle kernel)
 {
     ComputeException.ThrowOnError(ReleaseKernel(kernel));
 }
예제 #44
0
 extern static ComputeErrorCode RetainKernel(
     CLKernelHandle kernel);
예제 #45
0
 public extern static ComputeErrorCode ReleaseKernel(
     CLKernelHandle kernel);
예제 #46
0
 public static void GetKernelInfoWrapper(CLKernelHandle kernel, ComputeKernelInfo param_name, IntPtr param_value_size, IntPtr param_value, out IntPtr param_value_size_ret)
 {
     ComputeException.ThrowOnError(GetKernelInfo(kernel, param_name, param_value_size, param_value, out param_value_size_ret));
 }
예제 #47
0
 public extern static ComputeErrorCode ReleaseKernel(
     CLKernelHandle kernel);
예제 #48
0
 public static extern ComputeErrorCode RetainKernel(
     CLKernelHandle kernel);