我对CUDA中的随机生成器有疑问。我正在使用Curand使用以下代码生成随机数:
__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;
}
我曾多次尝试重新启动此代码,我总是输出相同的内容。我在这段代码中找不到什么问题。线程给出相同的ID,但curand_normal函数应该在每次启动时改变,对吗?