opencl:使用__local时分配了多少共享变量

时间:2014-08-20 04:25:59

标签: opencl

假设我们已将此声明为内核参数:

__local float *sharedData  

让我们说工作组大小为512.那么将分配多少个这样的sharedData副本? 512?或者只有一个副本,并将播放给所有主题?

内核中的其他变量怎么样?我的理解是内核体中的所有变量都会重复'n'否。时间,'n'是否定的。工作组中的线程数。

1 个答案:

答案 0 :(得分:1)

是的,本地数组对工作组中的所有工作项都可见(您说是广播)。无论工作组大小如何,每个工作组都将有一个副本。

如果您的工作组是512个工作项,并且您希望每个工作项有一个浮点数,那么sharedData将包含512个元素,您可以通过clSetKernelArg指定此大小。< / p>

正如DarkZeros所说,私有变量特定于每个工作项。 512个工作项中的每一个都有自己的副本。

(注意:我认为您正在调用线程是我们所谓的工作项。)