I would suggest using CURAND. I am no expert on the manner, but I am aware that making high quality parallel PRNGs is hard. Many older generators suffer from issues like periods that are way too short for todays fast computers where Monte Carlo applications can consume several billion random numbers per second, they cannot guarantee the independence of the random number stream generated for each thread, and they deliver random numbers with enough structure that they fail many tests implemented by comprehensive modern test frameworks like TestU01.
As the information in the CURAND manual points out, not all of CURAND’s generators pass all of the tests in TestU01, so programers will need to consider trade-offs between quality and performance. For something that needs to be extremely robust, the Mersenne Twister generator (CURAND_RNG_PSEUDO_MTGP32) appears to be indicated.