I've been using standard 32-bit Xorshift in my GPU path-tracer for a while, following Nathan Reed's approach with hashed seeds and decorrelated state. I (finally) discovered today that Xorshift is considered obsolete and I should use a 64-bit+ PRNG instead for better-distributed values, but I obviously can't fake the operations needed for PCG and modern Xorshift without expensive software arithmetic.

So, I've been considering the MRG32k3a hash by Pierre L'Ecuyer. It uses doubles instead of uint64s, it's included in Intel's Math Kernel Library, and some authors claim it has good statistical performance. It's also nearly twenty years old, though, and the paper linked above is dated from 2011.

Is MRG32k3a still considered an effective PRNG? Is it an effective alternative to PCG and modern Xorshift?

If not, what else should I use? Philox seems interesting, but it's another old technique (published 2011) and I'm not sure if it's been superseded in the meantime.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.