标签: concurrency shared-memory opencl
是否允许两个(或更多)不同的线程写入OpenCL中全局空间中的相同内存位置?写入总是将uchar从0更改为1,因此结果应该是可预测的,但是我的程序中的结果不稳定,所以我想知道原因是否有些写入失败。
将缓冲区声明为只写并将其复制到只读缓冲区会有帮助吗?
答案 0 :(得分:0)
您是否尝试使用cl_khr_global_int32_base_atomics扩展名和atom_inc内在函数?我首先将数据存储在int32而不是uchar作为概念证明,然后优化数据结构的内存占用。
cl_khr_global_int32_base_atomics
atom_inc
int32
uchar