我使用的是 HD5770,它有 10 个计算单元和 32k 的本地内存。
我的全局大小是 256 * 256,
我的本地大小是 256
每个工作组都需要使用 1k 的本地内存,我指定如下:
clSetKernelArg(predicate, param++, 1024, NULL);
首先:这是分配本地内存的正确方法,还是我必须在设置内核参数时指定所有工作组一起使用的缓冲区的整个大小,然后根据本地 id 对该缓冲区进行索引?
第二:一个工作组会只在一个计算单元上执行吗?
第三:工作组结束后内存会被释放吗?(如果每个工作组使用 1k,则 32k 不足以满足 256 个工作组)
或者以更一般的方式:调度程序是否会注意不并行调度超过 32 个工作组?
谢谢!