以下代码旨在将100个浮点数元素的数组递增1十次。在输出中,我希望每个元素都是10.0f值的100元素数组。但是实际上,我得到了随机值。您能指出我的错误吗?
__global__ void testAdd(float *a)
{
float temp;
for (int i = 0; i < 100 ; i++)
{
a[i] = atomicAdd(&a[i], 1.0f);
}
}
void cuTestAtomicAdd(float *a)
{
testAdd<<<1, 10>>>(a);
}
我的目标是理解原子操作的工作方式,以便将其应用于其他地方。