本地记忆腐败

时间:2015-10-03 03:27:44

标签: opencl

我对工作项中的本地内存使用情况有疑问:

我有一个包含256个工作项的工作组。我想为每个工作项分配K字节的本地内存。

因此,我创建一个大小为256 * K的本地字节数组,并为每个工作项分配一个大小为K的区域。

在代码中,每个工作项只访问数组中自己的区域。我可以保证工作项不会以某种方式访问​​其他工作项区域吗?鉴于本地内存是在半个波前共享的事实吗?

我问的原因是我看到了这种腐败,但我不确定这是代码错误,还是我设计的问题;

即。使用共享的本地数组,在工作项之间共享。

1 个答案:

答案 0 :(得分:2)

  

考虑到半个波前共享本地内存的事实

我不确定你的意思,但OpenCL规范非常清楚地表明本地内存是在工作组中共享的。就标准而言,没有“半波前”(甚至波前)这样的概念。

您可能注意到的任何内存损坏只能由您自己的代码引入:您的内核不会展示任何数据争用是您的责任。