NVIDIA NVPL RAND 文档#

NVPL RAND 库为 ARM CPU 提供了一系列高效的伪随机数和准随机数生成器。NVPL RAND 库中提供的 API 被设计得与 cuRAND 非常相似。熟悉 cuRAND 的用户可以轻松使用 NVPL RAND。

亮点#

  • NVPL RAND 包含了 cuRAND 中可用的大多数随机数生成器,包括

    • 四个伪随机数生成器:XORWOW、MRG32k3a、Philox_4x32_10 和 MT19937,

    • 32 位和 64 位 SOBOL 和 Scrambled SOBOL 准随机数生成器。

  • 包含了一个新的伪随机数生成器,置换同余生成器 (PCG)。据称它速度快、统计学上可靠,并且比大多数生成器更难以预测。

  • 除了 cuRAND 中可用的分布外,NVPL RAND 还提供了另外八个分布,包括

    • 三个单变量连续分布:指数分布、伽马分布和贝塔分布,

    • 一个多变量连续分布:狄利克雷分布,

    • 三个单变量离散分布:伯努利分布、分类分布和二项分布,

    • 一个多变量离散分布:多项分布。

  • NVPL RAND 提供了单线程库 libnvpl_rand.so 和多线程库 libnvpl_rand_mt.so。根据应用程序的需求,用户可以使用多线程生成器来创建具有高吞吐量的序列,或者在应用程序自身的并行区域中使用单线程生成器。