我的项目有问题。它是粒子方法,粒子有自己的属性,如ID速度压力等。计算在GPU中完成,每个粒子一个线程。现在,当粒子分裂时,比如分为3.新粒子需要ID,但问题是来自多个线程的多个分裂粒子尝试分配相同的粒子ID。我目前使用__syncthreads()
做到了,但速度很慢。还有其他方法可以实现吗?
答案 0 :(得分:2)
在这种情况下,使用同步进行ID生成似乎并不合理。
您可以尝试根据父粒子的ID分配ID。例如,您可以将父级的粒子ID包含在子级ID中。因此,子ID可以是..
to_int(string(parent_id) + string(child_no))