我对 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 函数应该在每次启动时改变,对吧?