我试图建立一个粒子系统利用CUDA做繁重的工作。我想随机的一些颗粒'初始价值观的速度和使用寿命。随机数字没有超随机的,因为它只是视觉效果。我发现这个员额,解决了相同的主题:

随机数发生在CUDA

这表明,线性同余的路要走。现在看来似乎应该是简单以实现,但我遇到了麻烦什么有用的我的执行情况。任何人都可以提供一些代码,将运行中的设备?

我使用CUDA与VC++在Windows7 64位.

有帮助吗?

解决方案

CUDA伪随机数发生器

  1. 包括在选SDK例如: C/src/MersenneTwister/C/src/quasirandomGenerator

  2. 可作为单独的文件和资料来源:

    2.一个 兰登的文件兰登的源代码

    2.b 梅森难题上GPU

其他提示

根据您的要求有许多的开源产品。也有一些商业的选项,如 NAG 谁已实施L'Ecuyer的MRG32k3a。警惕利用LCG的,如果你需要确保你的数据流是不相关的 - 你可以使用越级/分裂,但你需要一个很长的时期

如果你想要去开源,那么你绝对应该考虑使用推力为它的简单。也有一些的RNG在NVIDIA SDK,包括梅森倍捻机PRNG样品(MT607,MT19937是在论坛)和Sobol和的Niederreiter QRNGs。

最后, CUDPP 中也有一个随机数发生器。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top