我正在编写一个 cuda 内核,它需要我struct
在设备上分配一个对齐的数组。我从我的计算中得到了正确的结果,我需要从 index 开始将值写入这个数组0
。
当我尝试写入此数组并将结果显示回主机端时,一些答案显示为零。
显然,我没有按照我的要求增加索引。我尝试使用我增加使用的计数器atomicAdd()
,但是我仍然得到一些值为零。
准确地说,我可以1000
在我的内核中使用线程进行计算,但我的输出分配数组的大小可以小于100
或大于10000
.
我的问题是,如何让所有这些线程将值准确写入数组的一个位置(因为它们是计算出来的),并在1
不覆盖它的情况下增加数组索引/计数器。
任何帮助将不胜感激。在此先感谢。