【发布时间】:2010-05-18 21:50:59
【问题描述】:
是否允许两个(或更多)不同的线程在 OpenCL 的全局空间中写入相同的内存位置?写入总是将 uchar 从 0 更改为 1,因此结果应该是可预测的,但是我的程序中的结果不稳定,所以我想知道原因是否可能是某些写入失败。
将缓冲区声明为只写并随后将其复制到只读缓冲区是否有帮助?
【问题讨论】:
-
最重要的是,OpenCL 不支持写入
uchar数组(或指针),除非您启用了 cl_khr_byte_addressable_store 扩展。 -
谢谢,这似乎是问题所在(尽管我仍然不知道同时写入是否有效,因为我将代码更改为同时读取)。 AFAIK 我确实启用了扩展,但它似乎不起作用......但是,使用 uchar 对我来说并不重要,更改为 int 就可以了 :)
标签: concurrency shared-memory opencl