贴上kernel:
global void generate_uniform_kernel(float * state,int k,int time)
{
int id = threadIdx.x;
int t=time;
float x;
curandState localState ;
curand_init(t, id, 0, &localState);
for(int n=0;n<10000;n++)
{
if((id10000+n)<=k)
{
x = curand_uniform(&localState);
state[id10000+n]=x;
}
break;
}
}
我想在一次kernel中对state中的10000个数进行赋值,在主程序中调用
:generate_uniform_kernel<<<1,8>>>(devData,n,d_time);
但是程序总是不能正常运行啊。貌似只有第一个数赋值了,后面的全是0,不知道哪里有问题,我对curand的理解还是不太好。请大神指点啊