In this paper, we propose ThundeRiNG, a resource-efficient and high-throughput system for generating multiple independent sequences of random numbers (MISRN) on FPGAs. Generating MISRN can be a time-consuming step in many applications such as numeric computation and approximate computing. Despite that decades of studies on generating a single sequence of random numbers on FPGAs have achieved very high throughput and high quality of randomness, existing MISRN approaches either suffer from heavy resource consumption or fail to achieve statistical independence among sequences. In contrast, ThundeRiNG resolves the dependence by using a resource-efficient decorrelator among multiple sequences, guaranteeing a high statistical quality of randomness. Moreover, ThundeRiNG develops a novel state sharing among a massive number of pseudo-random number generator instances on FPGAs. The experimental results show that ThundeRiNG successfully passes the widely used statistical test, TestU01, only consumes a constant number of DSPs (less than 1\% of the FPGA resource capacity) for generating any number of sequences, and achieves a throughput of 655 billion random numbers per second. Compared to the state-of-the-art GPU library, ThundeRiNG demonstrates a $10.62\times$ speedup on MISRN and delivers up to $9.15\times$ performance and $26.63\times$ power efficiency improvement on two applications ($\pi$ estimation and Monte Carlo option pricing). This work is open-sourced on Github at https://github.com/Xtra-Computing/ThundeRiNG
翻译:在本文中,我们提出ThindeRiNG, 这是一种资源高效和高通量系统, 用于在 FPGAs 上生成多个随机数字独立序列( MISRN) 。 生成 MISRN 可能在许多应用程序中是一个耗时的步骤, 如数字计算和近似计算。 尽管数十年来关于生成 FPGAs 上单一随机数字序列的研究已经取得了极高的输送量和高品质, 现有的 MISRN 方法要么受到大量资源消耗, 要么未能在序列中实现统计独立性。 相比之下, ThindeRiNGNG在多个序列中使用资源高效的调制解调器( MISRNGNG), 保证高统计质量。 ThindeRNING 开发了一个全新的状态, 成功通过了广泛使用的统计测试( TestU01), 只能消耗一个不变的 DSP( 低于 FPGA 的 6+ 2 美元 ) 。 在每部的 RBA 资源中生成任何序列, 在 GNG 55/ 的 Outal- hal- hal- passal- sal- sal- prealxxxxxx 上, 在每部的运行运行运行速度上, 。