title: How Many cuRand States Required for Thread-Unique Random Numbers? (CUDA)
body: <p>How many cuRand states are required to get unique random numbers in every thread? From other questions posted on the site, some have said that you need one per thread and others say you need one per block. </p>
  
  <p>Does using one cuRand state per thread mean better random numbers? 
  Does using 1 cuRand state per thread slow down CUDA applications significantly (5000 + threads)?</p>
  
  <p>Also for the implementation of using 1 cuRand state per thread, does this kernel look right and efficient?:</p>
  
  <pre><code>__global__ void myKernel (const double *seeds) // seeds is an array of length = #threads
  int tid = ... // set tid = global thread ID
  {
  curandState s;
  curand_init (seeds[tid],0,0,&amp;s)
  
  ....
  
  double r = cuRand_uniform(&amp;s);
  
  ...
  
  }
  </code></pre>