【发布时间】:2012-11-01 11:50:35
【问题描述】:
考虑以下内核:
__kernel void histogramKernel(__global uint4 *Image, ....)
{ .
.
.
const uint mask = (uint) (NBINS-1); //NBINS=256
uint4 temp = Image[idx];
uint4 temp2 = (temp & mask);
temp = temp >> 8;
temp2 = (temp & mask);
. . .
}
假设:
4 个线程正在运行,idx=0,1,2,3 和 图片[idx]=idx+100
最后一行 temp2 的值是多少?
更新:
为
假设任何合适的值 Image[0].x, Image[0].y, Image[0].z, Image[0].w
Image[1].x, Image[1].y, Image[1].z, Image[1].w
Image[2].x, Image[2].y, Image[2].z, Image[2].w
Image[3].x, Image[3].y, Image[3].z, Image[3].w
【问题讨论】:
-
题主讲的是原子,题主问的是temp2的值。但我没有看到 temp2 的值受到原子的影响。原子的影响仅限于代码 sn-p 中的 s。
-
好吧,你是对的。实际上我只展示了整个代码的一部分。无论如何,我正在编辑磁贴和代码...