对于给定的内核,为什么 work_groups 的大小总是相同的?我在某处读到(对于我们没有指定本地工作大小的情况),openCL 为内核创建了 3 个工作组(每个 217 个工作项),内核有 651 个工作项(可被 3 整除),同时它创建了 653 个工作- 每组 1 个工作项,因为 653 是质数。
假设我们指定 local_work_size(即工作组中的工作项数),假设为 5。我们将工作项总数(global_work_size)设为 9。如何创建工作组?这就是为什么 global_work_size 必须是 local_work_size 的倍数?如果数据只需要 9 个工作项,如何将其增加到 10(local_work_size 的倍数,5)?
如果主机不知道有多少工作组将执行内核,为什么主机不能为结果数组分配内存?
请帮忙。我读了这一切: http ://www.openclblog.com/2011/09/work-group-sizes.html