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、工作组中的工作项可以进行同步