我想在全局内存上执行atomic_add。为此,我在内核源代码中指定了以下编译指示。
#pragma OPENCL EXTENSION cl_khr_global_int32_base_atomics : enable
假设我在工作组中有n个工作项,在全局内存中有一个int数组,
__global int *outData; int gId = get_group_id(0);
outData初始化为0并执行
atomic_add(&outData[gId], 1)
应将outData [gId]更改为n。当平台是OpenCL 1.2 AMD-APP(923.1)但使用OpenCL 1.1 CUDA 4.1.1平台导致垃圾值(-572662154)时,它只给出了预期的结果。
请帮帮我。