Read/write 在 OpenCL 内核的全局内存中

Read/write in Global Memory of an OpenCL Kernel

我关注这个页面很多次了,我认为它是一般编程问题的最佳页面之一。

嗯,通常我总是尝试为我的问题找到解决方案,但现在我认为我需要社区的一些帮助,因为我不知道如何解决我的问题。

我遇到的问题是 OpenCL API。我需要编写一个内核,在 'global memory' 中添加一些值。简要 问题描述为:

问题是我有 N 个线程(每个 index/value 一个)同时 read/write 在全局内存中,它们可以 read/write 在同一个位置,然后是最终值不一致

我添加了一张图片以图形方式查看问题: https://drive.google.com/file/d/0BzQ4sqg5hAdnMXZlZlIzUFB4QkhQOXZXVjcyS1ZKdXZYTS1j/view?usp=docslist_api

你有什么想法吗?

谢谢你,并致以最诚挚的问候。

此外,检查 OpenCL 原子函数:https://www.khronos.org/registry/cl/sdk/1.2/docs/man/xhtml/atomicFunctions.html