~/talk

Fast, High-Quality Pseudo-Random Numbers for Non-Cryptographers in C++

Talkat CppCon 2022 · 2022-09-11..09-16· [rust]
slides:none on file

Benchmarks compare std::mt19937 against modern alternatives and find zoshiro128+ and PCG produce similar perceptual audio results but run faster and with steadier timing. Code uses C++ <random> distributions, generate_canonical, sampling at 48 000 Hz and buffers 512/8192, plus a simple seed pod atomic seeding scheme. Demo builds white noise vinyl dust and a reverb; sequential seeding yields about 29 collision-free scratches for mt19937 versus 26 for zoshiro128+ and PCG shows similarly low collision counts, and full-plugin end-to-end timing is statistically indistinguishable.

AI-written summary · about

  1. 0:00Welcome and introduction to the talk
  2. 1:04Speaker background and context of use cases
  3. 2:29Digital audio basics and sampling fundamentals
  4. 5:14Reverb product and random number needs
  5. 7:19Exploring non-standard library generators
  6. 9:02Defining quality for random number generation
  7. 12:12Pseudo-random versus truly random numbers
  8. 15:00Use cases for random numbers in software
  9. 16:52Problems with std::rand and basic seeding
  10. 19:19Generator and distribution design considerations
  11. 21:06Seeding strategies and challenges
  12. 24:13Practical approaches to seeding generators
  13. 27:20Overview of external random number generators
  14. 30:49Audio demos and real-world examples
  15. 34:15Benchmarking different algorithms
  16. 36:21Quality tests with vinyl scratches and noise
  17. 41:18Evaluating generator performance in practice
  18. 42:00Portability and distribution concerns
  19. 43:24Performance impact of distributions
  20. 46:37End-to-end benchmarking results
  21. 48:45Final recommendations and conclusions
  22. 49:05Q&A: Compute percentage for PRNGs
  23. 50:53Q&A: Generator sharing versus per-use case
  24. 53:21Q&A: Parallel generation with SIMD and GPUs
  25. 54:23Q&A: Jitter and timing variance in generators
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.