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;
}
, 나는 항상 동일한 출력을 가지고있다. 이 코드에서 잘못된 점을 발견하지 못했습니다. 스레드는 동일한 ID를 제공하지만 curand_normal 함수는 시작될 때마다 바뀌어야합니다. 맞습니까?
같은 씨앗을 때마다 각 스레드를 시작, 그 threadid. 시퀀스가 어떻게 다른 것으로 기대할 수 있습니까? –
실제로 매번 새로운 시드를 설정할 시간을 사용하고 싶지만이 솔루션에 대해서는 확실하지 않습니다. – ALFRAM