publication . Part of book or chapter of book . Preprint . 2011

High-Performance Pseudo-Random Number Generation on Graphics Processing Units

Nimalan Nandapalan; Richard P. Brent; Lawrence M. Murray; Alistair P. Rendell;
Open Access
  • Published: 02 Aug 2011
  • Publisher: Springer Berlin Heidelberg
This work considers the deployment of pseudo-random number generators (PRNGs) on graphics processing units (GPUs), developing an approach based on the xorgens generator to rapidly produce pseudo-random numbers of high statistical quality. The chosen algorithm has configurable state size and period, making it ideal for tuning to the GPU architecture. We present a comparison of both speed and statistical quality with other common parallel, GPU-based PRNGs, demonstrating favourable performance of the xorgens-based approach.
Persistent Identifiers
free text keywords: Computer Science - Distributed, Parallel, and Cluster Computing, Mathematics - Number Theory, Statistics - Computation, 11K45 (Primary) 65C10, 65Y05, 65Y10 (Secondary), D.1.3, G.3, G.4, I.6.8, Software deployment, Number theory, Parallel computing, Architecture, Monte Carlo method, CUDA, Graphics, Pseudo random number generation, Computer graphics, Computer science
Related Organizations
Download fromView all 2 versions
Part of book or chapter of book
Provider: UnpayWall
Part of book or chapter of book . 2012
Provider: Crossref
17 references, page 1 of 2

[1] C. Andrieu, A. Doucet, and R. Holenstein. Particle Markov chain Monte Carlo methods. Journal of the Royal Statistical Society Series B, 72:269- 302, 2010.

[2] R. P. Brent. Some long-period random number generators using shifts and xors. ANZIAM Journal, 48, 2007.

[3] R. P. Brent. xorgens version 3.05, 2008. ˜brent/random.html.

[4] A. Doucet, N. de Freitas, and N. Gordon, editors. Sequential Monte Carlo Methods in Practice. Springer, 2001.

[5] W. Gilks, S. Richardson, and D. Spiegelhalter, editors. Markov chain Monte Carlo in practice. Chapman and Hall, 1995.

[6] J. Hoberock and N. Bell. Thrust: A parallel template library, 2010. URL Version 1.3.0.

[7] L. Howes and D. Thomas. GPU Gems 3, chapter Efficient Random Number Generation and Application Using CUDA. Addison-Wesley, 2007.

[8] P. L'Ecuyer and R. Simard. TestU01: A C library for empirical testing of random number generators. ACM Transactions on Mathematical Software, 33, 2007. [OpenAIRE]

[9] P. Leopardi. Testing the tests: using random number generators to improve empirical tests. Monte Carlo and Quasi-Monte Carlo Methods 2008, pages 501-512, 2009.

[10] G. Marsaglia. DIEHARD: a battery of tests of randomness. http://˜geo/ diehard.html, 1996.

[11] G. Marsaglia. Xorshift RNGs. J. of Statistical Software, 8(14):1-6, 2003.

[12] M. Matsumoto and T. Nishimura. Mersenne twister: A 623-dimensionally equidistributed uniform pseudorandom number generator. ACM Transactions on Modeling and Computer Simulation, 8:3-30, 1998.

[13] L. M. Murray. GPU acceleration of Runge-Kutta integrators. IEEE Transactions on Parallel and Distributed Systems, to appear, 2011.

[14] L. M. Murray. GPU acceleration of the particle filter: The Metropolis resampler. In DMMD: Distributed machine learning and sparse representation with massive data sets, 2011.

[15] NVIDIA Corp. CUDA CURAND Library. NVIDIA Corporation, 2010.

17 references, page 1 of 2
Any information missing or wrong?Report an Issue