我有一个关于CUDA中的随机生成器的问题。我使用Curand用下面的代码生成随机数:随机生成器和CUDA
__device__ float priceValue(int threadid){
unsigned int seed = threadid ;
curandState s;
curand_init (seed , 0, 0, &s);
float randomWalk = 2;
while (abs(randomWalk)> 1) {
randomWalk = curand_normal(&s);
}
return randomWalk;
}
我试图重新启动这个代码很多次了,我一直在相同的输出。我无法找到此代码中的错误。线程给出相同的Ids,但curand_normal函数应该在每次启动时更改,对吧?
你每次启动每个线程使用相同的种子,其线程ID。你怎么能期望序列是不同的? – 2013-03-08 15:28:21
其实我想用时间来设置一个新的种子,但我不知道有关thi解决方案 – ALFRAM 2013-03-08 15:57:49