c++ - 如何在cuda中生成伪随机数

标签 c++ random cuda gpgpu

我正在尝试使用 CUDA 构建一个粒子系统来完成繁重的工作。我想随机化一些粒子的初始值,如速度和生命周期。随机数不必是 super 随机的,因为它只是为了视觉效果。我发现这篇文章涉及同一主题:

Random Number Generation in CUDA

这表明线性同余是可行的方法。看起来它应该很容易实现,但我无法从我的实现中获得任何有用的东西。任何人都可以提供一些将在设备中运行的代码吗?

我在 Windows 7 64 位上使用 CUDA 和 VC++。

最佳答案

CUDA伪随机数生成器是

  1. 包含在 NVidia SDK 中,例如 C/src/MersenneTwister/C/src/quasirandomGenerator

  2. 作为单独的论文和来源提供:

    2.a Langdon's paperLangdon's source code

    2.b Mersenne Twister on GPU

关于c++ - 如何在cuda中生成伪随机数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2202534/

相关文章:

c++ - 什么是用于 C++ 项目的良好交互式语言解析器?

c++ - 值噪声随机函数奇怪的输出

sqlite - webkit 中的 sqlite 是否支持 RANDOM() 函数?

c++ - CUDAMemcpy 对我来说毫无意义......为什么我要在普通 C++ 中指定设备内存?

cuda -/usr/bin/ld : cannot find -lcudart

c++ - 我支持的程序因 SIGSEGV 而崩溃,但我不能从 .dmp 文件

Qt for Visual Studio 2017 的 C++ 编译问题

cuda - 在windows下运行nvprof --metrics命令出现错误:cuda profiling error

c++ - linux下可以分配大容量的虚拟内存吗?

r - 在数据帧中的一个因子的所有级别中选择 n 个随机采样的连续行