What algorithm does CURAND use?

What algorithm does the random number generator in the CURAND library use?
I’m just wondering because I’m using a linear feedback shift register RNG in Cuda Fortran, which is a random number generator based on the park-miller minimal standard (the original rng can be found here, but I’ve edited and parallelised it). If the CURAND random number generator is more efficient/better quality, then it might be worth interfacing my fortran code to Cuda C and using CURAND.

Thanks.

The CURAND documentation

http://developer.download.nvidia.com/compute/cuda/3_2/toolkit/docs/CURAND_Library.pdf

says that it is the XORWOW algorithm and cites this paper:

http://www.jstatsoft.org/v08/i14/paper

The CURAND documentation indicates that they are using the version of this algorithm with a period of 2**192 - 1. You can actually see the NVIDIA implementation by looking at the curand_init() and curand() functions in curand_kernel.h starting near line 433. (In my version of the toolkit, anyway.)