clEnqueueNDRangeKernel

cl_int clEnqueueNDRangeKernel (
        cl_command_queue command_queue,     //命令队列
     cl_kernel kernel,                                   //
     cl_uint work_dim,                                //数据的维度
     const size_t *global_work_offset,         // 各维度上的全局ID偏移量
     const size_t *global_work_size,     //各维度上的工作项数量
     const size_t *local_work_size,      // 各维度上一个工作组中工作项的数量
     cl_uint num_events_in_wait_list,
     const cl_event *event_wait_list,
     cl_event *event
)

clEnqueueTask

cl_int clEnqueueTask (
        cl_command_queue command_queue, //命令队列
     cl_kernel kernel,    //
     cl_uint num_events_in_wait_list,
     const cl_event *event_wait_list,
     cl_event *event
)
clEnqueueTask 和 clEnqueueNDRangeKernel的功能都是将核执行命令加入命令队列。而clEnqueueNDRangeKernel可以更好的划分数据,充分利用设备的资源

工作组和工作项的特点:

1、工作组中的工作项可以访问局部内存的同一块地址

2、工作组中的工作项可以进行同步

12-27 08:41