cuRAND 设备 API (nvmath.device.random)#

概述#

This module provides access to the device APIs of NVIDIA cuRAND library, which allows random number generation on the GPU. Detailed documentation of cuRAND device APIs can be found in the cuRAND documentation.

API 参考#

实用工具#

Compile([cc])

使用指定的计算能力编译随机设备 API。

位生成器和状态 API (nvmath.device.random)#

init(..., state)

初始化 RNG 状态。

rand(state)

根据提供的位生成器生成 32 位或 64 位的随机数。

rand4(state)

从 Philox4_32_10 生成器生成 32 位随机数的 4 元组。

StatesMRG32k3a(n)

MRG32k3a 位生成器的状态。

StatesPhilox4_32_10(n)

Philox4_32_10 位生成器的状态。

StatesSobol32(n)

Sobol32 位生成器的状态。

StatesSobol64(n)

Sobol64 位生成器的状态。

StatesScrambledSobol32(n)

ScrambledSobol32 位生成器的状态。

StatesScrambledSobol64(n)

ScrambledSobol64 位生成器的状态。

StatesXORWOW(n)

XORWOW 位生成器的状态。

分布采样 API (nvmath.device.random)#

normal(state)

使用指定的位生成器状态从正态分布中采样一个浮点数。

normal_double(state)

使用指定的位生成器状态从正态分布中采样一个双精度浮点数。

normal2(state)

使用指定的位生成器状态从正态分布中采样两个浮点数。

normal2_double(state)

使用指定的位生成器状态从正态分布中采样两个双精度浮点数。

normal4(state)

使用指定的位生成器状态从正态分布中采样四个浮点数。

log_normal(state, mean, stddev)

使用指定的位生成器状态从对数正态分布中采样一个浮点数。

log_normal_double(state, mean, stddev)

使用指定的位生成器状态从对数正态分布中采样一个双精度浮点数。

log_normal2(state, mean, stddev)

使用指定的位生成器状态从对数正态分布中采样两个浮点数。

log_normal2_double(state, mean, stddev)

使用指定的位生成器状态从对数正态分布中采样两个双精度浮点数。

log_normal4(state, mean, stddev)

使用指定的位生成器状态从对数正态分布中采样四个浮点数。

poisson(state, Lambda)

使用指定的位生成器状态从泊松分布中采样一个无符号整数。

poisson4(state, Lambda)

使用指定的位生成器状态从泊松分布中采样四个无符号整数。

uniform(state)

使用指定的位生成器状态从均匀分布中采样一个浮点数。

uniform_double(state)

使用指定的位生成器状态从均匀分布中采样一个双精度浮点数。

uniform2_double(state)

使用指定的位生成器状态从均匀分布中采样两个双精度浮点数。

uniform4(state)

使用指定的位生成器状态从均匀分布中采样四个浮点数。

跳跃式 API (nvmath.device.random)#

skipahead(n, state)

更新位生成器状态以向前跳跃 n 个元素。

skipahead_sequence(n, state)

更新位生成器状态以向前跳跃 n 个序列。

skipahead_subsequence(n, state)

更新位生成器状态以向前跳跃 n 个子序列。

辅助主机 API (nvmath.device.random_helpers)#

get_direction_vectors32(int set_, size_t size)

获取用于 32 位准随机数生成的方向向量。

get_direction_vectors64(int set_, size_t size)

获取用于 64 位准随机数生成的方向向量。

get_scramble_constants32(size_t size)

获取用于 32 位 scrambled Sobol' 的扰乱常数。

get_scramble_constants64(size_t size)

获取用于 64 位 scrambled Sobol' 的扰乱常数。

DirectionVectorSet(value[, names, module, ...])

请参阅 curandDirectionVectorSet