Read/write 在 OpenCL 内核的全局内存中
Read/write in Global Memory of an OpenCL Kernel
我关注这个页面很多次了,我认为它是一般编程问题的最佳页面之一。
嗯,通常我总是尝试为我的问题找到解决方案,但现在我认为我需要社区的一些帮助,因为我不知道如何解决我的问题。
我遇到的问题是 OpenCL API。我需要编写一个内核,在 'global memory' 中添加一些值。简要
问题描述为:
- 我有一个 'index' 大小为 N 的数组。
- 我有一个大小为 N 的“值”数组。
- 我有一个 'adds' 大小为 M 的数组。
- 索引数组包含数组'adds'的索引。例如,如果index数组的第一个值为3,那么数组的第一个值
'values' 被添加到 'adds'.
数组的索引 3
问题是我有 N 个线程(每个 index/value 一个)同时 read/write 在全局内存中,它们可以 read/write 在同一个位置,然后是最终值不一致
我添加了一张图片以图形方式查看问题:
https://drive.google.com/file/d/0BzQ4sqg5hAdnMXZlZlIzUFB4QkhQOXZXVjcyS1ZKdXZYTS1j/view?usp=docslist_api
你有什么想法吗?
谢谢你,并致以最诚挚的问候。
我关注这个页面很多次了,我认为它是一般编程问题的最佳页面之一。
嗯,通常我总是尝试为我的问题找到解决方案,但现在我认为我需要社区的一些帮助,因为我不知道如何解决我的问题。
我遇到的问题是 OpenCL API。我需要编写一个内核,在 'global memory' 中添加一些值。简要 问题描述为:
- 我有一个 'index' 大小为 N 的数组。
- 我有一个大小为 N 的“值”数组。
- 我有一个 'adds' 大小为 M 的数组。
- 索引数组包含数组'adds'的索引。例如,如果index数组的第一个值为3,那么数组的第一个值 'values' 被添加到 'adds'. 数组的索引 3
问题是我有 N 个线程(每个 index/value 一个)同时 read/write 在全局内存中,它们可以 read/write 在同一个位置,然后是最终值不一致
我添加了一张图片以图形方式查看问题: https://drive.google.com/file/d/0BzQ4sqg5hAdnMXZlZlIzUFB4QkhQOXZXVjcyS1ZKdXZYTS1j/view?usp=docslist_api
你有什么想法吗?
谢谢你,并致以最诚挚的问候。