MT19937 CPU和GPU之间的伪随机数匹配

gio*_*345 7 c++ cuda

我正在研究 的行为CURAND_RNG_PSEUDO_MT19937,特别是为了匹配由 Mersenne Twister 的标准 CPU 实现生成的数字(std::mt19937boost::random::mt19937)的标准 CPU 实现生成的数字。

\n

我在文档中读到中读到cuRand MT19937 \xe2\x80\x9chas与CPU版本的参数相同,但顺序不同[\xe2\x80\xa6]输出由8192个独立生成器生成。每个生成器生成原始序列的连续子序列。[\xe2\x80\xa6] 结果的排列方式与最初不同,以实现更高的性能。\xe2\x80\x9d

\n

检查 unsigned int 输出序列std::mt19937,只有第一个数字相等,并且两个生成器立即发散。

\n

考虑到在我的 CPU 环境中,我有一个使用n std::mt19937增量种子实例化的分布式计算(s+1,s+2等)实例化的分布式计算。您知道是否有办法修改 cuRand MT19937 生成器以匹配我的工作流程?

\n

谢谢

\n