Skip to main content
QUICK REVIEW

[论文解读] A fast vectorised implementation of Wallace's normal random number generator

Richard P. Brent|arXiv (Cornell University)|Apr 19, 2010
Numerical Methods and Algorithms参考文献 17被引用 11
一句话总结

本文提出 RANN4,一种基于华莱士方法的快速向量化正态随机数生成器,通过在正态分布变量子池上应用正交矩阵变换,生成新的变量子,无需依赖均匀随机数流或超越函数。该方法在富士通 VP2200 和 VPP300 等向量处理器上,性能超过传统方法(如 Box-Muller 和 Polar)三倍以上,使用保守的丢弃因子 f=3 时,每变量子仅需 6.4 个周期。

ABSTRACT

Wallace has proposed a new class of pseudo-random generators for normal variates. These generators do not require a stream of uniform pseudo-random numbers, except for initialisation. The inner loops are essentially matrix-vector multiplications and are very suitable for implementation on vector processors or vector/parallel processors such as the Fujitsu VPP300. In this report we outline Wallace's idea, consider some variations on it, and describe a vectorised implementation RANN4 which is more than three times faster than its best competitors (the Polar and Box-Muller methods) on the Fujitsu VP2200 and VPP300.

研究动机与目标

  • 开发一种适用于向量与并行架构的高性能正态随机数生成器。
  • 消除在正态变量子生成过程中对均匀随机数流及对数、开方、正弦、余弦等初等函数的依赖。
  • 在向量处理器上实现接近快速均匀随机数生成器的性能。
  • 通过仔细选择参数和实现中的误差监控,确保统计稳健性。

提出的方法

  • 该方法使用正交矩阵变换(例如旋转矩阵)从现有变量子池中生成新的正态变量子,保持平方和不变并确保正态性。
  • 通过 N 次矩阵-向量乘法,对 nN 个正态分布数的池进行重新生成,通常将 n 设为 2 或 4 以提高效率。
  • 使用整数常数 α、β、γ、δ 定义变换中的非单位步长,以确保统计独立性并减少极端值中的相关性。
  • 应用丢弃因子 f 以丢弃每次遍历的初始值,降低极端值幅度的相关性,改善统计特性。
  • 通过监控平方和来检测因舍入误差引起的漂移,从而实现实时校正与错误检测。
  • 该生成器在富士通 VP2200 和 VPP300 系统上实现,利用向量指令级并行性实现高吞吐量。

实验结果

研究问题

  • RQ1华莱士的正态随机数生成器能否被高效地向量化,以在向量处理器上实现接近快速均匀生成器的性能?
  • RQ2统计特性(如矩一致性与变换后变量的均匀性)如何依赖于丢弃因子 f 等参数的选择?
  • RQ3具有非单位步长的正交矩阵变换对输出序列中极端值的相关结构有何影响?
  • RQ4该生成器能否在不依赖外部均匀随机数流或超越函数计算的情况下,保持良好的统计质量?

主要发现

  • 在富士通 VP2200/10 上,RANN4 使用 f=3 时,每正态变量子性能达到 6.4 个周期,相比此前最快的方法 RANN3(21.9 个周期)实现了 3.2 倍的性能提升。
  • 在 VPP300 上,性能约为每变量子 11.4 纳秒(f=3),或在 f=1 时达到 5.4 纳秒,相比 VP2200 实现了两倍的性能提升。
  • 统计测试表明,变换变量 u = exp(-(x²+y²)/2) 和 v = arctan(x/y) 均呈均匀分布,卡方统计量显示当 f ≥ 1 时无显著偏离均匀性。
  • 当 f=1 时,生成变量子的四阶矩在 5% 置信水平下显著偏小,表明极端值中存在更强的相关性;该效应在 f ≥ 3 时得到缓解。
  • 通过监控平方和可检测因舍入误差引起的漂移,该方法成功检测到工作区被覆盖时的内存损坏。
  • 在类似 VPP300 的向量-并行系统中,多个处理器可在初始化后独立生成随机数流,无需进程间通信。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。