Hello, I have also a question on the order of using the Host API of Sobol sequence.

My question is now I need to use different Gaussian random sequence. I want to use QMC, so I need different Sobol sequences (let’s say 10). I follow toolkit documentation and it says:

"

32 and 64 bit SOBOL and Scrambled SOBOL quasirandom generators

CURAND_ORDERING_QUASI_DEFAULT

When generating n results in d dimensions, the output will consist of n / d results from dimension 1, followed by n / d results from dimension 2, and so on up to dimension d . Only exact multiples of the dimension size may be generated. The dimension parameter d is set with curandSetQuasiRandomGeneratorDimensions() and defaults to 1.

"

Here, if I use

float*hostData;

hostData = (float *)calloc(n,sizeof(float));

curandCreateGeneratorHost(&gen,CURAND_RNG_QUASI_SOBOL32);

curandSetQuasiRandomGeneratorDimensions(gen,10);

curandGenerateNormal(gen,hostData,1000,0,1);

Finally in hostData, I am confused which sequence I get

(1) (hostData[1],…,hostData[100]), (hostData[101],…,hostData[200]),…,(hostData[991],…,hostData[1000])

where

(hostData[1],…,hostData[100]) is Gaussian sequence transferred by Sobol sequence in dim 1

## (hostData[101],…,hostData[200]) is Gaussian sequence transferred by Sobol sequence in dim 2

and so on

or I get

(2) (hostData[1],…,hostData[1000]) is Gaussian sequence, and transferred by

({Sobol_1[1], Sobol_1[2],…,Sobol_1[100]} , {Sobol_2[1],Sobol_2[2],…,Sobol_2[100]},…,{Sobol_100[1],Sobol_100[2],…,Sobol_100[100]})

where Sobol_i[j] is the j-th elements of the i-dimensional Sobol sequence.