CUDA:粒子方法,对线程中新创建的粒子的ID分配

时间:2014-06-03 01:00:27

标签: cuda synchronization

我的项目有问题。它是粒子方法,粒子有自己的属性,如ID速度压力等。计算在GPU中完成,每个粒子一个线程。现在,当粒子分裂时,比如分为3.新粒子需要ID,但问题是来自多个线程的多个分裂粒子尝试分配相同的粒子ID。我目前使用__syncthreads()做到了,但速度很慢。还有其他方法可以实现吗?

1 个答案:

答案 0 :(得分:2)

在这种情况下,使用同步进行ID生成似乎并不合理。

您可以尝试根据父粒子的ID分配ID。例如,您可以将父级的粒子ID包含在子级ID中。因此,子ID可以是..

to_int(string(parent_id) + string(child_no))