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.
It looks like you are running on the same GPU as your display (confirmed in comments). It could be that you are hitting the timeout. See this answer for an example of how to disable the timeout, or you could reduce the sample count.