Efficient SIMD RNG for Varying-Parameter Streams: C++ Class BatchRNG
Alireza S. Mahani, Mansour T.A. Sharabiani

TL;DR
This paper introduces BatchRNG, a C++ class that efficiently generates random numbers with varying parameters using SIMD vector units, overcoming limitations of traditional vectorized RNGs in dynamic statistical applications.
Contribution
The paper presents BatchRNG, a novel approach that buffers base distributions to enable efficient SIMD random number generation with changing parameters.
Findings
BatchRNG outperforms scalar RNGs in dynamic parameter scenarios.
Performance tests show significant speed gains with the batching strategy.
Effective for various distributions like uniform, Gaussian, and exponential.
Abstract
Single-Instruction, Multiple-Data (SIMD) random number generators (RNGs) take advantage of vector units to offer significant performance gain over non-vectorized libraries, but they often rely on batch production of deviates from distributions with fixed parameters. In many statistical applications such as Gibbs sampling, parameters of sampled distributions change from one iteration to the next, requiring that random deviates be generated one-at-a-time. This situation can render vectorized RNGs inefficient, and even inferior to their scalar counterparts. The C++ class BatchRNG uses buffers of base distributions such uniform, Gaussian and exponential to take advantage of vector units while allowing for sequences of deviates to be generated with varying parameters. These small buffers are consumed and replenished as needed during a program execution. Performance tests using Intel Vector…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSpeech and Audio Processing · Speech Recognition and Synthesis · Underwater Vehicles and Communication Systems
