Abstract
Some excellent surveys of the Gaussian random number generators (GRNGs) from the algorithmic perspective exist in the published literature to date (e.g., Thomas et al. [2007]). In the last decade, however, advancements in digital hardware have resulted in an ever-decreasing hardware cost and increased design flexibility. Additionally, recent advances in applications like gaming, weather forecasting, and simulations in physics and astronomy require faster, cheaper, and statistically accurate GRNGs. These two trends have contributed toward the development of a number of novel GRNG architectures optimized for hardware design. A detailed comparative study of these hardware architectures has been somewhat missing in the published literature. This work provides the potential user a capsulization of the published hardware GRNG architectures. We have provided the method and theory, pros and cons, and a comparative summary of the speed, statistical accuracy, and hardware resource utilization of these architectures. Finally, we have complemented this work by describing two novel hardware GRNG architectures, namely, the CLT-inversion and the multihat algorithm, respectively. These new architectures provide high tail accuracy (6σ and 8σ, respectively) at a low hardware cost.
- A. Alimohammad, S. F. Fard, B. F. Cockburn, and C. Schlegel. 2008. A compact and accurate Gaussian variate generator. IEEE Transactions on Very Large Scale Integration (VLSI) Systems 16, 5 (May 2008), 517--527. Google ScholarDigital Library
- D. Ashlock. 2006. Evolutionary Computation for Modeling and Optimization. Springer. Google ScholarDigital Library
- S. Banks, P. Beadling, and A. Ferencz. 2008. FPGA implementation of pseudo random number generators for Monte Carlo methods in quantitative finance. In International Conference on Reconfigurable Computing and FPGAs, 2008. 271--276. Google ScholarDigital Library
- G. E. Box and M. E. Muller. 1958. A note on the generation of random normal deviates. Annals of Mathematical Statistics 29, 2 (1958), 610--611.Google ScholarCross Ref
- R. P. Brent. 2008. Some comments on C. S. Wallace’s random number generators. Computer Journal 51, 5 (2008), 579--584.Google ScholarCross Ref
- R. C. C. Cheung, D. U. Lee, W. Luk, and J. D. Villasenor. 2007. Hardware generation of arbitrary random number distributions from uniform distributions via the inversion method. IEEE Transactions on Very Large Scale Integration (VLSI) Systems 15, 8 (Aug. 2007), 952--962. Google ScholarDigital Library
- L. Colavito and D. Silage. 2009. Efficient PGA LFSR implementation whitens pseudo random numbers. In International Conference on Reconfigurable Computing and FPGAs, 2009. 308--313. Google ScholarDigital Library
- C. P. Dancey and J. Reidy. 2004. Statistics without Maths for Psychology: Using Spss for Windows. Prentice-Hall, Upper Saddle River, NJ. Google ScholarDigital Library
- J. L. Danger, A. Ghazel, E. Boutillon, and H. Laamari. 2000. Efficient FPGA implementation of Gaussian noise generator for communication channel emulation. In The 7th IEEE International Conference on Electronics, Circuits and Systems, 2000. Vol. 1. 366--369.Google Scholar
- C. de Schryver, D. Schmidt, N. Wehn, E. Korn, H. Marxen, and R. Korn. 2010. A new hardware efficient inversion based random number generator for non-uniform distributions. In 2010 International Conference on Reconfigurable Computing and FPGAs, 2010. 190--195. Google ScholarDigital Library
- P. Echeverria and M. Lopez-Vallejo. 2007. FPGA Gaussian random number generator based on quintic Hermite interpolation inversion. In 50th Midwest Symposium on Circuits and Systems, 2007. 871--874.Google Scholar
- H. M. Edrees, B. Cheung, M. Sandora, D. B. Nummey, and D. Stefan. 2009. Hardware-optimized Ziggurat algorithm for high-speed Gaussian random number generators. In ERSA, Toomas P. Plaks (Ed.). CSREA Press, 254--260.Google Scholar
- E. Fung, K. Leung, N. Parimi, M. Purnaprajna, and V. C. Gaudet. 2004. ASIC implementation of a high speed WGNG for communication channel emulation [white Gaussian noise generator]. In IEEE Workshop on Signal Processing Systems, 2004. 304--309.Google Scholar
- S. Ghahramani. 2005. Fundamentals of Probability with Stochastic Processes. Pearson/Prentice Hall.Google Scholar
- A. Ghazel, E. Boutillon, J. L. Danger, G. Gulak, and H. Laamari. 2001. Design and performance analysis of a high speed AWGN communication channel emulator. In IEEE Pacific Rim Conference on Communications, Computers and Signal Processing, 2001. Vol. 2. 374--377.Google Scholar
- R. Gutierrez, V. Torres, and J. Valls. 2012. Hardware architecture of a Gaussian noise generator based on the inversion method. IEEE Transactions on Circuits and Systems II: Express Briefs 59, 8 (Aug. 2012), 501--505.Google ScholarCross Ref
- A. R. Hamid and Q. N. Tran. 2015. Emerging Trends in Computational Biology, Bioinformatics and Systems Biology: Algorithms and Software Tools (Emerging Trends in Computer Science and Applied Computing). Morgan Kaufmann. Google ScholarDigital Library
- P. Kabal. 2000. Generating Gaussian Pseudo-Random Deviates. McGill University.Google Scholar
- S. Konuma and S. Ichikawa. 2005. Design and evaluation of hardware pseudo-random number generator MT19937. IEICE Transactions 88-D, 12 (2005), 2876--2879. Google ScholarDigital Library
- D. U. Lee, R. C. C. Cheung, J. D. Villasenor, and W. Luk. 2006. Inversion-based hardware Gaussian random number generator: A case study of function evaluation via hierarchical segmentation. In IEEE International Conference on Field Programmable Technology, 2006. 33--40.Google Scholar
- D. U. Lee, W. Luk, J. Villasenor, and P. Y. K. Cheung. 2003. Hierarchical segmentation schemes for function evaluation. In Proceedings of the 2003 IEEE International Conference on Field-Programmable Technology (FPT’03). 92--99.Google ScholarCross Ref
- D. U. Lee, W. Luk, J. D. Villasenor, and P. Y. K. Cheung. 2004. A Gaussian noise generator for hardware-based simulations. IEEE Transactions on Computers 53, 12 (Dec. 2004), 1523--1534. Google ScholarDigital Library
- D. U. Lee, W. Luk, J. D. Villasenor, G. Zhang, and P. H. W. Leong. 2005. A hardware Gaussian noise generator using the Wallace method. IEEE Transactions on Very Large Scale Integration (VLSI) Systems 13, 8 (Aug. 2005), 911--920. Google ScholarDigital Library
- D. U. Lee, J. D. Villasenor, W. Luk, and P. H. W. Leong. 2006. A hardware Gaussian noise generator using the Box-Muller method and its error analysis. IEEE Transactions on Computers 55, 6 (June 2006), 659--671. Google ScholarDigital Library
- Y. Li, P. Chow, J. Jiang, M. Zhang, and S. Wei. 2012. Software/hardware framework for generating parallel Gaussian random numbers based on the Monty Python method. In 2012 International Conference on Field-Programmable Technology (FPT’12). 190--197. Google ScholarDigital Library
- J. S. Malik and A. Hemani. 2009. On the design of Doppler filters for next generation radio channel simulators. In 3rd International Conference on Signals, Circuits and Systems (SCS’09). 1--6.Google Scholar
- J. S. Malik, A. Hemani, and N. D. Gohar. 2013. Unifying CORDIC and Box-Muller algorithms: An accurate and efficient Gaussian random number generator. In IEEE 24th International Conference on Application-Specific Systems, Architectures and Processors (ASAP’13). 277--280. Google ScholarDigital Library
- J. S. Malik, A. Hemani, J. N. Malik, B. Silmane, and N. D Gohar. 2014. Revisiting central limit theorem: Accurate Gaussian random number generation in VLSI. IEEE Transactions on Very Large Scale Integration (VLSI) Systems PP, 99 (2014), 1--1.Google Scholar
- J. S. Malik, J. N. Malik, A. Hemani, and N. D. Gohar. 2011a. An efficient hardware implementation of high quality AWGN generator using Box-Muller method. In 11th International Symposium on Communications and Information Technologies (ISCIT’11). 449--454.Google Scholar
- J. S. Malik, J. N. Malik, A. Hemani, and N. D. Gohar. 2011b. Generating high tail accuracy Gaussian random numbers in hardware using central limit theorem. In 19th International Conference on VLSI and System-on-Chip (VLSI-SoC’11). 60--65.Google Scholar
- J. S. Malik, P. Palazzari, and A. Hemani. 2012. Effort, resources and abstraction vs performance in high-level synthesis: Finding new answers to an old question. SIGARCH Computer Architecture News 40, 5 (March 2012), 64--69. Google ScholarDigital Library
- G. Marsaglia and T. A. Bray. 1964. A convenient method for generating normal variables. Journal of SIAM Review 6, 3 (1964), 260--264.Google ScholarDigital Library
- G. Marsaglia and W. W. Tsang. 1984. A fast, easily implemented method for sampling from decreasing or symmetric unimodal density functions. SIAM Journal on Scientific Statistical Computing 5 (1984), 349--359.Google ScholarDigital Library
- G. Marsaglia and W. W. Tsang. 1998. The Monty Python method for generating random variables. ACM Transactions on Mathematical Software 24, 3 (1998), 341--350. Google ScholarDigital Library
- G. Marsaglia and W. W. Tsang. 1999. The Monty Python method for generating gamma variables. Journal of Statistical Software 3, 3 (1999), 1--8. Google ScholarDigital Library
- G. Marsaglia and W. W. Tsang. 2000. The Ziggurat method for generating random variables. Journal of Statistical Software 5, 8 (2000), 1--7.Google ScholarCross Ref
- M. E. Muller. 1958. An inverse method for the generation of random normal deviates on large-scale computers. Journal of Mathematical Tables and Other Aids in Computing 12, 63 (1958), 167--174.Google ScholarCross Ref
- E. S. Page. 1959. Pseudo-random elements for computers. Journal of the Royal Statistical Society 8, 2 (June 1959), 124--131.Google Scholar
- M. Schatzman. 2002. Numerical Analysis: A Mathematical Introduction. Clarendon Press, Oxford.Google Scholar
- C. D. Schryver, D. Schmidt, N. Wehn, E. Korn, H. Marxen, A. Kostiuk, and R. Korn. 2012. A hardware efficient random number generator for nonuniform distributions with arbitrary precision. International Journal of Reconfigurable Computing 2012, Article 12 (Jan. 2012), 1 page. Google ScholarDigital Library
- B. G. Sileshi, C. Ferrer, and J. Oliver. 2014. Accelerating hardware Gaussian random number generation using Ziggurat and CORDIC algorithms. In IEEE Sensors, 2014. 2122--2125.Google Scholar
- M. Stefano and S. Simone. 2007. The quantum separability problem for Gaussian states. Electronic Notes on Theoretical Computer Science 169 (March 2007), 121--131. Google ScholarDigital Library
- G. Tennant. 2001. Six Sigma: SPC and TQM in Manufacturing and Services. Gower Publishing.Google Scholar
- D. B. Thomas. 2014. FPGA Gaussian random number generators with guaranteed statistical accuracy. In IEEE 22nd Annual International Symposium on Field-Programmable Custom Computing Machines (FCCM’14). 149--156. Google ScholarDigital Library
- D. B. Thomas. 2015. The table-Hadamard GRNG: An area-efficient FPGA Gaussian random number generator. ACM Transactions on Reconfigurable Technological Systems 8, 4, Article 23 (Sept. 2015), 22 pages. Google ScholarDigital Library
- D. B. Thomas and W. Luk. 2006. Non-uniform random number generation through piecewise linear approximations. In International Conference on Field Programmable Logic and Applications, 2006. 1--6.Google ScholarCross Ref
- D. B Thomas and W. Luk. 2013. The LUT-SR family of uniform random number generators for FPGA architectures. IEEE Transactions on Very Large Scale Integration (VLSI) Systems 21 (2013), 761--770. Google ScholarDigital Library
- D. B. Thomas, L. Wayne, P. H. W. Leong, and J. D. Villasenor. 2007. Gaussian random number generators. ACM Computer Surveys 39, 4, Article 11 (Nov. 2007).Google Scholar
- C. S. Wallace. 1996. Fast pseudo random generators for normal and exponential variates. ACM Transactions on Mathematical Software 22 (1996), 119--127. Google ScholarDigital Library
- Xilinx. 2002. Additive white Gaussian noise (AWGN) core. Xilinx.Google Scholar
- G. L. Zhang, P. H. Leong, C. H. Ho, K. H. Tsoi, C. C. Cheung, D. U. Lee, R. C. Cheung, and W. Luk. 2005a. Reconfigurable acceleration for Monte Carlo based financial simulation. In IEEE International Conference on Field-Programmable Technology, 2005. 215--222.Google ScholarCross Ref
- Z. G. Zhang, P. H. W. Leong, D. U. Lee, J. D. Villasenor, R. C. C. Cheung, and W. Luk. 2005b. Ziggurat-based hardware Gaussian random number generator. In International Conference on Field Programmable Logic and Applications, 2005. 275--280.Google ScholarCross Ref
Index Terms
- Gaussian Random Number Generation: A Survey on Hardware Architectures
Recommendations
Gaussian random number generators
Rapid generation of high quality Gaussian random numbers is a key capability for simulations across a wide range of disciplines. Advances in computing have brought the power to conduct simulations with very large numbers of random numbers and with it, ...
Unifying CORDIC and Box-Muller algorithms: An accurate and efficient Gaussian Random Number generator
ASAP '13: Proceedings of the 2013 IEEE 24th International Conference on Application-specific Systems, Architectures and Processors (ASAP)An efficient hardware implementation of Gaussian Random Number (GRN) generator based upon Box-Muller (BM) and CORDIC algorithms is presented. We will illustrate a novel hardware architecture with flexible design space that unifies the two algorithms. A ...
A hardware framework for the fast generation of multiple long-period random number streams
FPGA '08: Proceedings of the 16th international ACM/SIGDA symposium on Field programmable gate arraysStochastic simulations and other scientific applications that depend on random numbers are increasingly implemented in a parallelized manner in programmable logic. High-quality pseudo-random number generators (PRNG), such as the Mersenne Twister, are ...
Comments