在OpenCL内核的全局内存中读/写

时间:2016-03-03 11:16:51

标签: arrays kernel opencl shared-memory

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

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

我遇到的问题是OpenCL API。我需要编写一个在“全局内存”中添加一些值的内核。简要 问题的描述是:

  • 我有一个大小为N的'index'数组。
  • 我有一个大小为N的“值”数组。
  • 我有一个'添加'大小为M的数组。
  • 索引数组包含数组'adds'的索引。例如,如果index数组的第一个值是3,那么数组的第一个值 'values'被添加到'adds'数组的索引3中。

问题是我有N个线程(每个索引/值一个)在gobal内存中同时读/写并且它们可以在同一位置读/写,然后最终值不一致

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

你有什么想法吗?

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

1 个答案:

答案 0 :(得分:1)