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
。根据应用程序的需求,用户可以使用多线程生成器来创建具有高吞吐量的序列,或者在应用程序自身的并行区域中使用单线程生成器。