I am trying to use device version of Mersenne Twister from cuRAND. I tried to use second example in the cuRAND API docs:
3.6. Device API Examples
I took the liberty of copying the code into separate gist:
curand.cu
This is what I get while executing the code on 9400M (CC 1.1, Mac OS X 10.8) and GTS 250 (CC 1.1, Linux) with CUDA Toolkit 5.5. Using -arch=sm_20
only removes the warnings but the result is the same:
$ nvcc curand.cu && ./a.out
./curand.cu(32): Warning: Cannot tell what pointer points to, assuming global memory space
./curand.cu(32): Warning: Cannot tell what pointer points to, assuming global memory space
./curand.cu(32): Warning: Cannot tell what pointer points to, assuming global memory space
./curand.cu(32): Warning: Cannot tell what pointer points to, assuming global memory space
./curand.cu(32): Warning: Cannot tell what pointer points to, assuming global memory space
./curand.cu(32): Warning: Cannot tell what pointer points to, assuming global memory space
Error at curand.cu:93
Oddly enough, everything seems to work fine on 9600 GT (CC 1.0, Linux) and GTX 570 (CC 2.0, Linux):
$ nvcc curand.cu && ./a.out
./curand.cu(32): Warning: Cannot tell what pointer points to, assuming global memory space
./curand.cu(32): Warning: Cannot tell what pointer points to, assuming global memory space
./curand.cu(32): Warning: Cannot tell what pointer points to, assuming global memory space
./curand.cu(32): Warning: Cannot tell what pointer points to, assuming global memory space
./curand.cu(32): Warning: Cannot tell what pointer points to, assuming global memory space
./curand.cu(32): Warning: Cannot tell what pointer points to, assuming global memory space
Fraction with low bit set was 0.4999963531494
^^^^ kernel_mtgp_example PASSED
I would really like to run Mersenne Twister on 9400M (preferably from cuRAND). Is it possible? If so, what would be your recommendation to do so?
Thanks!
UPDATE:
Now I get the error on 9600 GT (Linux) as well:
$ ./a.out
GPUassert: unknown error curand.cu 99
Occasionaly though I get the following (9600 GT, Linux):
$ ./a.out
GPUassert: the launch timed out and was terminated curand.cu 99
Note: this could be caused by load of the machine hosting the GPGPU (it's not idling).
To smmarize:
Doesn't work on - 9400M(Mac), 9600GT(Linux), GTS250(Linux)
Works on - GTX570(Linux)
All the above run on CUDA toolkit 5.5.