Hi,
digging into OpenCl reading tutorials some things stayed unclear for me. Here is a collection of my questions regarding local and global work sizes.
1. Must the [font=“Courier New”]global_work_size[/font] be smaller than [font=“Courier New”]CL_DEVICE_MAX_WORK_ITEM_SIZES[/font]?
On my machine [font=“Courier New”]CL_DEVICE_MAX_WORK_ITEM_SIZES = 512, 512, 64[/font].
2. Is [font=“Courier New”]CL_KERNEL_WORK_GROUP_SIZE[/font] the recommended [font=“Courier New”]work_group_size[/font] for the used kernel?
2b. Or is this the only [font=“Courier New”]work_group_size[/font] the GPU allows?
On my machine [font=“Courier New”]CL_KERNEL_WORK_GROUP_SIZE = 512[/font]
3. Do I need to divide into work groups or can I have only one, but not specifying local_work_size?
3b. To what do I have to pay attention, when I only have one work group?
4. What does [font=“Courier New”]CL_DEVICE_MAX_WORK_GROUP_SIZE[/font] mean?
On my machine [font=“Courier New”]CL_DEVICE_MAX_WORK_GROUP_SIZE = 512, 512, 64[/font]
4b. Does this mean, I can have one work group which is as large as the [font=“Courier New”]CL_DEVICE_MAX_WORK_ITEM_SIZES[/font]?
Added by edit:
5. Has [font=“Courier New”]global_work_size[/font] to be a divisor of [font=“Courier New”]CL_DEVICE_MAX_WORK_ITEM_SIZES[/font]?
In my code [font=“Courier New”]global_work_size = 20[/font].
Thanks for your help!