Opencl 在clEnqueueNDRangeKernel中使用全局_work_偏移量
我的全局工作大小为1000,但我只希望执行200到1000之间的内核Opencl 在clEnqueueNDRangeKernel中使用全局_work_偏移量,opencl,Opencl,我的全局工作大小为1000,但我只希望执行200到1000之间的内核 size_t global_work_size = 1000; size_t global_work_offset = 200; clEnqueueNDRangeKernel(cpu_queue, kernel [0], 1, &global_work_offset, &global_work_size, NULL, 0, NULL, NULL); 问题是,即使我指定了偏移量,它也会计算整个0-1000范围。
size_t global_work_size = 1000;
size_t global_work_offset = 200;
clEnqueueNDRangeKernel(cpu_queue, kernel [0], 1, &global_work_offset, &global_work_size, NULL, 0, NULL, NULL);
问题是,即使我指定了偏移量,它也会计算整个0-1000范围。我尝试使用:
size_t global_work_offset [1] = {200}; but still no luck.
您应该注意到CL 1.0和1.1中该参数之间的差异: 第1.0条: 全局工作偏移量 当前必须为空值。在OpenCL的未来版本中, 全局工作偏移量可用于指定工作尺寸的数组 描述用于计算全局偏移量的偏移量的无符号值 工作项的ID,而不是全局ID始终从 偏移量(0,0,…0) 第1.1条: 全局工作偏移量 全局工作偏移量可用于指定工作尺寸的数组 描述用于计算全局偏移量的偏移量的无符号值 工作项的ID。如果全局工作偏移量为空,则全局ID开始 在偏移量(0,0,…0)处 因此,请检查您是否有CL 1.1设备和驱动程序