要生成完全独立的随机数,您需要使用并行随机数生成器.基本上,您选择单个种子并生成M个独立的随机数流.因此,在每个M GPU上,您可以从独立流生成随机数.
处理多个GPU时,您需要注意以下内容:
事实证明,在每个GPU内核上生成随机数很棘手(请参阅我回答过的问题).当我一直在玩GPU和RN时,如果你一次生成大数字,你只能在GPU上随机生成加速.
相反,我会在CPU上生成随机数,因为:
在评论中回答你的问题:随机数取决于什么?
非常基本的随机数发生器是线性同余发生器.尽管这种发生器已被新方法所超越,但它应该让您了解它们的工作原理.基本上,第i个随机数取决于(i-1)随机数.正如您所指出的,如果您运行两个足够长的流,它们将重叠.最大的问题是,你不知道什么时候会重叠.