Random 使用拟随机生成器(用于假人)

Random 使用拟随机生成器(用于假人),random,cuda,numbers,generator,Random,Cuda,Numbers,Generator,我是CUDA的新手,我正在努力在内核中生成随机数 我知道有不同的实现,而且,在SDK 4.1中有一个Niederreiter Quasirandom序列生成器的示例 我不知道从哪里开始。。。我有点难过,感觉自己像个傻瓜 请大家举一个简单而愚蠢的例子,使用Niederreiter Quasirandom序列生成器(SKD代码示例)?我真的很感激。 例如,创建一个向量并用随机数填充它(每个线程填充一个向量位置) 先谢谢你 SDK中的quasirandomGenerator示例与您的要求基本相同,它占

我是CUDA的新手,我正在努力在内核中生成随机数

我知道有不同的实现,而且,在SDK 4.1中有一个Niederreiter Quasirandom序列生成器的示例

我不知道从哪里开始。。。我有点难过,感觉自己像个傻瓜

请大家举一个简单而愚蠢的例子,使用Niederreiter Quasirandom序列生成器(SKD代码示例)?我真的很感激。 例如,创建一个向量并用随机数填充它(每个线程填充一个向量位置)


先谢谢你

SDK中的quasirandomGenerator示例与您的要求基本相同,它占用一个内存区域并用quasirandom数字填充

也就是说,我认为你最好使用cuRAND,它是Sobol'而不是Niederreiter,但除非你有特别的理由选择后者,否则你会发现它更容易使用。有关如何使用它的示例,您应该查看MonteCarloCURAND样本集:

  • EstimatePiQ展示了如何在GPU内存上分配一个区域,并用Sobol的数字填充它
  • EstimatePiInlineQ展示了如何在另一个内核中一次生成一个数字

以p结尾的示例使用伪随机生成器。

谢谢,我使用了cuRAND,它完全满足了我的需要。事实上,我对自己取得的成绩非常满意。但是,当我使用这个库和Matlab并行计算工具箱的feval函数时,我得到了错误和意外的结果。一些外来行为出现了。。。所以我想尝试另一个生成器进行比较。cuRAND中生成的数字是标准的Sobol'序列,所以我担心你在其他地方可能做错了什么(可能是在你从Matlab调用时)。我认为并行计算工具箱可能有问题。。。我的CUDA实现在没有MATLAB的情况下运行良好(当我直接从主机代码调用内核时),但是当通过MATLAB调用时,我会得到额外的结果。。。。Matlab的调用很简单,我在那里不会做错任何事。。。。你知道我还可以使用其他易于使用的随机生成器吗?为什么不用你的代码发布一个问题,看看它为什么不工作?库兰德不太可能是这里问题的根源!如果你想尝试另一个随机数生成器,那么看看Sobol’样本,如果Niederreiter样本对你没有帮助的话。