Skip to main content

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

  • Conference paper
Parallel Processing and Applied Mathematics (PPAM 2011)

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 7203))

Abstract

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 GPU-based PRNGs, demonstrating favourable performance of the xorgens-based approach.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

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

    Article  MathSciNet  Google Scholar 

  2. Brent, R.P.: xorgens version 3.05 (2008), http://maths.anu.edu.au/~brent/random.html

  3. Brent, R.P.: Some long-period random number generators using shifts and xors. ANZIAM Journal 48 (2007)

    Google Scholar 

  4. Doucet, A., de Freitas, N., Gordon, N. (eds.): Sequential Monte Carlo Methods in Practice. Springer (2001)

    Google Scholar 

  5. Gilks, W., Richardson, S., Spiegelhalter, D. (eds.): Markov chain Monte Carlo in practice. Chapman and Hall (1995)

    Google Scholar 

  6. Hoberock, J., Bell, N.: Thrust: A parallel template library (2010), http://thrust.googlecode.com

  7. Howes, L., Thomas, D.: Efficient Random Number Generation and Application Using CUDA. GPU Gems 3. Addison-Wesley (2007)

    Google Scholar 

  8. Langdon, W.: A fast high quality pseudo random number generator for NVIDIA CUDA. In: Proceedings of the 11th Annual Conference Companion on Genetic and Evolutionary Computation Conference: Late Breaking Papers. pp. 2511–2514. ACM (2009)

    Google Scholar 

  9. L’Ecuyer, P., Simard, R.: TestU01: A C library for empirical testing of random number generators. ACM Transactions on Mathematical Software 33 (2007)

    Google Scholar 

  10. Leopardi, P.: Testing the tests: using random number generators to improve empirical tests. In: Monte Carlo and Quasi-Monte Carlo Methods 2008, pp. 501–512 (2009)

    Google Scholar 

  11. Marsaglia, G.: DIEHARD: a battery of tests of randomness (1996), http://stat.fsu.edu/~geo/diehard.html

  12. Marsaglia, G.: Xorshift RNGs. Journal of Statistical Software 8(14), 1–6 (2003)

    Google Scholar 

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

    Article  MATH  Google Scholar 

  14. Murray, L.M.: GPU acceleration of Runge-Kutta integrators. IEEE Transactions on Parallel and Distributed Systems 23, 94–101 (2012)

    Article  Google Scholar 

  15. Murray, L.M.: GPU acceleration of the particle filter: The Metropolis resampler. In: DMMD: Distributed Machine Learning and Sparse Representation with Massive Data Sets (2011)

    Google Scholar 

  16. NVIDIA Corp: CUDA Compute Unified Device Architecture Programming Guide Version 3.2. NVIDIA Corp., Santa Clara, CA 95050 (2010)

    Google Scholar 

  17. NVIDIA Corp: CUDA CURAND Library. NVIDIA Corporation (2010)

    Google Scholar 

  18. Phillips, C.L., Anderson, J.A., Glotzer, S.C.: Pseudo-random number generation for Brownian dynamics and dissipative particle dynamics simulations on GPU devices. Journal of Computational Physics 230(19), 7191–7201 (2011), http://www.sciencedirect.com/science/article/pii/S0021999111003329

    Article  MATH  Google Scholar 

  19. Saito, M.: A variant of Mersenne Twister suitable for graphic processors (2011), http://arxiv.org/abs/1005.4973

  20. Sussman, M., Crutchfield, W., Papakipos, M.: Pseudorandom number generation on the GPU. In: Proceedings of the 21st ACM SIGGRAPH/EUROGRAPHICS Symposium on Graphics Hardware, pp. 87–94. ACM, New York (2006), http://dl.acm.org/citation.cfm?id=1283900.1283914

    Google Scholar 

  21. Tzeng, S., Wei, L.: Parallel white noise generation on a GPU via cryptographic hash. In: Proceedings of the 2008 Symposium on Interactive 3D Graphics and Games, pp. 79–87. ACM (2008)

    Google Scholar 

  22. Zafar, F., Olano, M., Curtis, A.: GPU random numbers via the tiny encryption algorithm. In: Proceedings of the Conference on High Performance Graphics, pp. 133–141. Eurographics Association, Aire-la-Ville (2010), http://dl.acm.org/citation.cfm?id=1921479.1921500

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2012 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Nandapalan, N., Brent, R.P., Murray, L.M., Rendell, A.P. (2012). High-Performance Pseudo-Random Number Generation on Graphics Processing Units. In: Wyrzykowski, R., Dongarra, J., Karczewski, K., Waśniewski, J. (eds) Parallel Processing and Applied Mathematics. PPAM 2011. Lecture Notes in Computer Science, vol 7203. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-31464-3_62

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-31464-3_62

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-31463-6

  • Online ISBN: 978-3-642-31464-3

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics