假设我们已将此声明为内核参数:
__local float *sharedData
让我们说工作组大小为512.那么将分配多少个这样的sharedData副本? 512?或者只有一个副本,并将播放给所有主题?
内核中的其他变量怎么样?我的理解是内核体中的所有变量都会重复'n'否。时间,'n'是否定的。工作组中的线程数。
答案 0 :(得分:1)
是的,本地数组对工作组中的所有工作项都可见(您说是广播)。无论工作组大小如何,每个工作组都将有一个副本。
如果您的工作组是512个工作项,并且您希望每个工作项有一个浮点数,那么sharedData
将包含512个元素,您可以通过clSetKernelArg指定此大小。< / p>
正如DarkZeros所说,私有变量特定于每个工作项。 512个工作项中的每一个都有自己的副本。
(注意:我认为您正在调用线程是我们所谓的工作项。)