5.2. Device API
命名空间
- namespace curand_detail
函数
- __device__ unsigned int curand ( curandStateMtgp32_t* state )
- 从 mtgp32 生成器返回 32 位伪随机数。
- __device__ unsigned long long curand ( curandStateScrambledSobol64_t* state )
- 从 scrambled Sobol64 生成器返回 64 位准随机数。
- __device__ unsigned long long curand ( curandStateSobol64_t* state )
- 从 Sobol64 生成器返回 64 位准随机数。
- __device__ unsigned int curand ( curandStateScrambledSobol32_t* state )
- 从 scrambled Sobol32 生成器返回 32 位准随机数。
- __device__ unsigned int curand ( curandStateSobol32_t* state )
- 从 Sobol32 生成器返回 32 位准随机数。
- __device__ unsigned int curand ( curandStateMRG32k3a_t* state )
- 从 MRG32k3a 生成器返回 32 位伪随机数。
- __device__ unsigned int curand ( curandStatePhilox4_32_10_t* state )
- 从 Philox4_32_10 生成器返回 32 位伪随机数。
- __device__ unsigned int curand ( curandStateXORWOW_t* state )
- 从 XORWOW 生成器返回 32 位伪随机数。
- __device__ uint4 curand4 ( curandStatePhilox4_32_10_t* state )
- 从 Philox4_32_10 生成器返回包含 4 个 32 位伪随机数的元组。
- __host__ __forceinline__ curandStatus_t curandMakeMTGP32Constants ( const mtgp32_params_fast_t params[], mtgp32_kernel_params_t* p )
- 为 mtgp32 生成器设置常量参数。
- __host__ __forceinline__ curandStatus_t CURANDAPI curandMakeMTGP32KernelState ( curandStateMtgp32_t* s, mtgp32_params_fast_t params[], mtgp32_kernel_params_t* k, int n, unsigned long long seed )
- 为 mtgp32 生成器设置初始状态。
- __device__ void curand_init ( curandDirectionVectors64_t direction_vectors, unsigned long long scramble_c, unsigned long long offset, curandStateScrambledSobol64_t* state )
- 初始化 Scrambled Sobol64 状态。
- __device__ void curand_init ( curandDirectionVectors64_t direction_vectors, unsigned long long offset, curandStateSobol64_t* state )
- 初始化 Sobol64 状态。
- __device__ void curand_init ( curandDirectionVectors32_t direction_vectors, unsigned int scramble_c, unsigned int offset, curandStateScrambledSobol32_t* state )
- 初始化 Scrambled Sobol32 状态。
- __device__ void curand_init ( curandDirectionVectors32_t direction_vectors, unsigned int offset, curandStateSobol32_t* state )
- 初始化 Sobol32 状态。
- __device__ void curand_init ( unsigned long long seed, unsigned long long subsequence, unsigned long long offset, curandStateMRG32k3a_t* state )
- 初始化 MRG32k3a 状态。
- __device__ void curand_init ( unsigned long long seed, unsigned long long subsequence, unsigned long long offset, curandStatePhilox4_32_10_t* state )
- 初始化 Philox4_32_10 状态。
- __device__ void curand_init ( unsigned long long seed, unsigned long long subsequence, unsigned long long offset, curandStateXORWOW_t* state )
- 初始化 XORWOW 状态。
- __device__ float curand_log_normal ( curandStateScrambledSobol64_t* state, float mean, float stddev )
- 从 scrambled Sobol64 生成器返回一个对数正态分布的浮点数。
- __device__ float curand_log_normal ( curandStateSobol64_t* state, float mean, float stddev )
- 从 Sobol64 生成器返回一个对数正态分布的浮点数。
- __device__ float curand_log_normal ( curandStateScrambledSobol32_t* state, float mean, float stddev )
- 从 scrambled Sobol32 生成器返回一个对数正态分布的浮点数。
- __device__ float curand_log_normal ( curandStateSobol32_t* state, float mean, float stddev )
- 从 Sobol32 生成器返回一个对数正态分布的浮点数。
- __device__ float curand_log_normal ( curandStateMtgp32_t* state, float mean, float stddev )
- 从 MTGP32 生成器返回一个对数正态分布的浮点数。
- __device__ float curand_log_normal ( curandStateMRG32k3a_t* state, float mean, float stddev )
- 从 MRG32k3a 生成器返回一个对数正态分布的浮点数。
- __device__ float curand_log_normal ( curandStatePhilox4_32_10_t* state, float mean, float stddev )
- 从 Philox4_32_10 生成器返回一个对数正态分布的浮点数。
- __device__ float curand_log_normal ( curandStateXORWOW_t* state, float mean, float stddev )
- 从 XORWOW 生成器返回一个对数正态分布的浮点数。
- __device__ float2 curand_log_normal2 ( curandStateMRG32k3a_t* state, float mean, float stddev )
- 从 MRG32k3a 生成器返回两个正态分布的浮点数。
- __device__ float2 curand_log_normal2 ( curandStatePhilox4_32_10_t* state, float mean, float stddev )
- 从 Philox4_32_10 生成器返回两个正态分布的浮点数。
- __device__ float2 curand_log_normal2 ( curandStateXORWOW_t* state, float mean, float stddev )
- 从 XORWOW 生成器返回两个正态分布的浮点数。
- __device__ double2 curand_log_normal2_double ( curandStateMRG32k3a_t* state, double mean, double stddev )
- 从 MRG32k3a 生成器返回两个对数正态分布的双精度浮点数。
- __device__ double2 curand_log_normal2_double ( curandStatePhilox4_32_10_t* state, double mean, double stddev )
- 从 Philox4_32_10 生成器返回两个对数正态分布的双精度浮点数。
- __device__ double2 curand_log_normal2_double ( curandStateXORWOW_t* state, double mean, double stddev )
- 从 XORWOW 生成器返回两个对数正态分布的双精度浮点数。
- __device__ float4 curand_log_normal4 ( curandStatePhilox4_32_10_t* state, float mean, float stddev )
- 从 Philox4_32_10 生成器返回四个正态分布的浮点数。
- __device__ double curand_log_normal_double ( curandStateScrambledSobol64_t* state, double mean, double stddev )
- 从 scrambled Sobol64 生成器返回一个对数正态分布的双精度浮点数。
- __device__ double curand_log_normal_double ( curandStateSobol64_t* state, double mean, double stddev )
- 从 Sobol64 生成器返回一个对数正态分布的双精度浮点数。
- __device__ double curand_log_normal_double ( curandStateScrambledSobol32_t* state, double mean, double stddev )
- 从 scrambled Sobol32 生成器返回一个对数正态分布的双精度浮点数。
- __device__ double curand_log_normal_double ( curandStateSobol32_t* state, double mean, double stddev )
- 从 Sobol32 生成器返回一个对数正态分布的双精度浮点数。
- __device__ double curand_log_normal_double ( curandStateMtgp32_t* state, double mean, double stddev )
- 从 MTGP32 生成器返回一个对数正态分布的双精度浮点数。
- __device__ double curand_log_normal_double ( curandStateMRG32k3a_t* state, double mean, double stddev )
- 从 MRG32k3a 生成器返回一个对数正态分布的双精度浮点数。
- __device__ double curand_log_normal_double ( curandStatePhilox4_32_10_t* state, double mean, double stddev )
- 从 Philox4_32_10 生成器返回一个对数正态分布的双精度浮点数。
- __device__ double curand_log_normal_double ( curandStateXORWOW_t* state, double mean, double stddev )
- 从 XORWOW 生成器返回一个对数正态分布的双精度浮点数。
- __device__ float curand_mtgp32_single ( curandStateMtgp32_t* state )
- 从 mtgp32 生成器返回一个均匀分布的浮点数。
- __device__ float curand_mtgp32_single_specific ( curandStateMtgp32_t* state, unsigned char index, unsigned char n )
- 从 mtgp32 生成器中的特定位置返回一个均匀分布的浮点数。
- __device__ unsigned int curand_mtgp32_specific ( curandStateMtgp32_t* state, unsigned char index, unsigned char n )
- 从 mtgp32 生成器中的特定位置返回 32 位伪随机数。
- __device__ float curand_normal ( curandStateScrambledSobol64_t* state )
- 从 scrambled Sobol64 生成器返回一个正态分布的浮点数。
- __device__ float curand_normal ( curandStateSobol64_t* state )
- 从 Sobol64 生成器返回一个正态分布的浮点数。
- __device__ float curand_normal ( curandStateScrambledSobol32_t* state )
- 从 scrambled Sobol32 生成器返回一个正态分布的浮点数。
- __device__ float curand_normal ( curandStateSobol32_t* state )
- 从 Sobol32 生成器返回一个正态分布的浮点数。
- __device__ float curand_normal ( curandStateMtgp32_t* state )
- 从 MTGP32 生成器返回一个正态分布的浮点数。
- __device__ float curand_normal ( curandStateMRG32k3a_t* state )
- 从 MRG32k3a 生成器返回一个正态分布的浮点数。
- __device__ float curand_normal ( curandStatePhilox4_32_10_t* state )
- 从 Philox4_32_10 生成器返回一个正态分布的浮点数。
- __device__ float curand_normal ( curandStateXORWOW_t* state )
- 从 XORWOW 生成器返回一个正态分布的浮点数。
- __device__ float2 curand_normal2 ( curandStateMRG32k3a_t* state )
- 从 MRG32k3a 生成器返回两个正态分布的浮点数。
- __device__ float2 curand_normal2 ( curandStatePhilox4_32_10_t* state )
- 从 Philox4_32_10 生成器返回两个正态分布的浮点数。
- __device__ float2 curand_normal2 ( curandStateXORWOW_t* state )
- 从 XORWOW 生成器返回两个正态分布的浮点数。
- __device__ double2 curand_normal2_double ( curandStateMRG32k3a_t* state )
- 从 MRG32k3a 生成器返回两个正态分布的双精度浮点数。
- __device__ double2 curand_normal2_double ( curandStatePhilox4_32_10_t* state )
- 从 Philox4_32_10 生成器返回两个正态分布的双精度浮点数。
- __device__ double2 curand_normal2_double ( curandStateXORWOW_t* state )
- 从 XORWOW 生成器返回两个正态分布的双精度浮点数。
- __device__ float4 curand_normal4 ( curandStatePhilox4_32_10_t* state )
- 从 Philox4_32_10 生成器返回四个正态分布的浮点数。
- __device__ double curand_normal_double ( curandStateScrambledSobol64_t* state )
- 从 scrambled Sobol64 生成器返回一个正态分布的双精度浮点数。
- __device__ double curand_normal_double ( curandStateSobol64_t* state )
- 从 Sobol64 生成器返回一个正态分布的双精度浮点数。
- __device__ double curand_normal_double ( curandStateScrambledSobol32_t* state )
- 从 scrambled Sobol32 生成器返回一个正态分布的双精度浮点数。
- __device__ double curand_normal_double ( curandStateSobol32_t* state )
- 从 Sobol32 生成器返回一个正态分布的双精度浮点数。
- __device__ double curand_normal_double ( curandStateMtgp32_t* state )
- 从 MTGP32 生成器返回一个正态分布的双精度浮点数。
- __device__ double curand_normal_double ( curandStateMRG32k3a_t* state )
- 从 MRG32k3a 生成器返回一个正态分布的双精度浮点数。
- __device__ double curand_normal_double ( curandStatePhilox4_32_10_t* state )
- 从 Philox4_32_10 生成器返回一个正态分布的双精度浮点数。
- __device__ double curand_normal_double ( curandStateXORWOW_t* state )
- 从 XORWOW 生成器返回一个正态分布的双精度浮点数。
- __device__ unsigned int curand_poisson ( curandStateScrambledSobol64_t* state, double lambda )
- 从 scrambled Sobol64 生成器返回一个泊松分布的无符号整数。
- __device__ unsigned int curand_poisson ( curandStateSobol64_t* state, double lambda )
- 从 Sobol64 生成器返回一个泊松分布的无符号整数。
- __device__ unsigned int curand_poisson ( curandStateScrambledSobol32_t* state, double lambda )
- 从 scrambled Sobol32 生成器返回一个泊松分布的无符号整数。
- __device__ unsigned int curand_poisson ( curandStateSobol32_t* state, double lambda )
- 从 Sobol32 生成器返回一个泊松分布的无符号整数。
- __device__ unsigned int curand_poisson ( curandStateMtgp32_t* state, double lambda )
- 从 MTGP32 生成器返回一个泊松分布的无符号整数。
- __device__ unsigned int curand_poisson ( curandStateMRG32k3a_t* state, double lambda )
- 从 MRG32k3A 生成器返回一个泊松分布的无符号整数。
- __device__ unsigned int curand_poisson ( curandStatePhilox4_32_10_t* state, double lambda )
- 从 Philox4_32_10 生成器返回一个泊松分布的无符号整数。
- __device__ unsigned int curand_poisson ( curandStateXORWOW_t* state, double lambda )
- 从 XORWOW 生成器返回一个泊松分布的无符号整数。
- __device__ uint4 curand_poisson4 ( curandStatePhilox4_32_10_t* state, double lambda )
- 从 Philox4_32_10 生成器返回四个泊松分布的无符号整数。
- __device__ float curand_uniform ( curandStateScrambledSobol64_t* state )
- 从 scrambled Sobol64 生成器返回一个均匀分布的浮点数。
- __device__ float curand_uniform ( curandStateSobol64_t* state )
- 从 Sobol64 生成器返回一个均匀分布的 float。
- __device__ float curand_uniform ( curandStateScrambledSobol32_t* state )
- 从 scrambled Sobol32 生成器返回一个均匀分布的 float。
- __device__ float curand_uniform ( curandStateSobol32_t* state )
- 从 Sobol32 生成器返回一个均匀分布的 float。
- __device__ float curand_uniform ( curandStateMtgp32_t* state )
- 从 MTGP32 生成器返回一个均匀分布的 float。
- __device__ float curand_uniform ( curandStatePhilox4_32_10_t* state )
- 从 Philox4_32_10 生成器返回一个均匀分布的 float。
- __device__ float curand_uniform ( curandStateMRG32k3a_t* state )
- 从 MRG32k3a 生成器返回一个均匀分布的 float。
- __device__ float curand_uniform ( curandStateXORWOW_t* state )
- 从 XORWOW 生成器返回一个均匀分布的 float。
- __device__ double2 curand_uniform2_double ( curandStatePhilox4_32_10_t* state )
- 从 Philox4_32_10 生成器返回一个均匀分布的 2 个 double 的元组。
- __device__ float4 curand_uniform4 ( curandStatePhilox4_32_10_t* state )
- 从 Philox4_32_10 生成器返回一个均匀分布的 4 个 float 的元组。
- __device__ double curand_uniform_double ( curandStateScrambledSobol64_t* state )
- 从 scrambled Sobol64 生成器返回一个均匀分布的 double。
- __device__ double curand_uniform_double ( curandStateSobol64_t* state )
- 从 Sobol64 生成器返回一个均匀分布的 double。
- __device__ double curand_uniform_double ( curandStateScrambledSobol32_t* state )
- 从 scrambled Sobol32 生成器返回一个均匀分布的 double。
- __device__ double curand_uniform_double ( curandStateSobol32_t* state )
- 从 Sobol32 生成器返回一个均匀分布的 double。
- __device__ double curand_uniform_double ( curandStatePhilox4_32_10_t* state )
- 从 Philox4_32_10 生成器返回一个均匀分布的 double。
- __device__ double curand_uniform_double ( curandStateMtgp32_t* state )
- 从 MTGP32 生成器返回一个均匀分布的 double。
- __device__ double curand_uniform_double ( curandStateMRG32k3a_t* state )
- 从 MRG32k3a 生成器返回一个均匀分布的 double。
- __device__ double curand_uniform_double ( curandStateXORWOW_t* state )
- 从 XORWOW 生成器返回一个均匀分布的 double。
- template < typename T >__device__ CURAND_STD::enable_if < CURAND_STD::is_same < curandStateSobol64_t* > ::type skipahead ( unsigned long long n, T state )
- 更新 Sobol64 状态以跳过 n 个元素。
- template < typename T >__device__ CURAND_STD::enable_if < CURAND_STD::is_same < curandStateSobol32_t* > ::type skipahead ( unsigned int n, T state )
- 更新 Sobol32 状态以跳过 n 个元素。
- __device__ void skipahead ( unsigned long long n, curandStateMRG32k3a_t* state )
- 更新 MRG32k3a 状态以跳过 n 个元素。
- __device__ void skipahead ( unsigned long long n, curandStatePhilox4_32_10_t* state )
- 更新 Philox4_32_10 状态以跳过 n 个元素。
- __device__ void skipahead ( unsigned long long n, curandStateXORWOW_t* state )
- 更新 XORWOW 状态以跳过 n 个元素。
- __device__ void skipahead_sequence ( unsigned long long n, curandStateMRG32k3a_t* state )
- 更新 MRG32k3a 状态以向前跳过 n 个序列。
- __device__ void skipahead_sequence ( unsigned long long n, curandStatePhilox4_32_10_t* state )
- 更新 Philox4_32_10 状态以向前跳过 n 个子序列。
- __device__ void skipahead_sequence ( unsigned long long n, curandStateXORWOW_t* state )
- 更新 XORWOW 状态以向前跳过 n 个子序列。
- __device__ void skipahead_subsequence ( unsigned long long n, curandStateMRG32k3a_t* state )
- 更新 MRG32k3a 状态以向前跳过 n 个子序列。
函数
- __device__ unsigned int curand ( curandStateMtgp32_t* state )
-
从 mtgp32 生成器返回 32 位的伪随机数。
参数
- state
- - 指向要更新的状态的指针
返回值
32 位的伪随机数,类型为 unsigned int,所有位均有效可用。
描述
从 mtgp32 生成器返回 32 位的伪随机数,如state所示,将生成器的位置增加块中的线程数。请注意,块中的线程数不能超过 256。
- __device__ unsigned long long curand ( curandStateScrambledSobol64_t* state )
-
从 scrambled Sobol64 生成器返回 64 位的准随机数。
参数
- state
- - 指向要更新的状态的指针
返回值
64 位的准随机数,类型为 unsigned long long,所有位均有效可用。
描述
从 scrambled Sobol32 生成器返回 64 位的准随机数,如state所示,将生成器的位置增加一。
- __device__ unsigned long long curand ( curandStateSobol64_t* state )
-
从 Sobol64 生成器返回 64 位的准随机数。
参数
- state
- - 指向要更新的状态的指针
返回值
64 位的准随机数,类型为 unsigned long long,所有位均有效可用。
描述
从 Sobol64 生成器返回 64 位的准随机数,如state所示,将生成器的位置增加一。
- __device__ unsigned int curand ( curandStateScrambledSobol32_t* state )
-
从 scrambled Sobol32 生成器返回 32 位的准随机数。
参数
- state
- - 指向要更新的状态的指针
返回值
32 位的准随机数,类型为 unsigned int,所有位均有效可用。
描述
从 scrambled Sobol32 生成器返回 32 位的准随机数,如state所示,将生成器的位置增加一。
- __device__ unsigned int curand ( curandStateSobol32_t* state )
-
从 Sobol32 生成器返回 32 位的准随机数。
参数
- state
- - 指向要更新的状态的指针
返回值
32 位的准随机数,类型为 unsigned int,所有位均有效可用。
描述
从 Sobol32 生成器返回 32 位的准随机数,如state所示,将生成器的位置增加一。
- __device__ unsigned int curand ( curandStateMRG32k3a_t* state )
-
从 MRG32k3a 生成器返回 32 位的伪随机数。
参数
- state
- - 指向要更新的状态的指针
返回值
32 位的伪随机数,类型为 unsigned int,所有位均有效可用。
描述
从 MRG32k3a 生成器返回 32 位的伪随机数,如state所示,将生成器的位置增加一。
- __device__ unsigned int curand ( curandStatePhilox4_32_10_t* state )
-
从 Philox4_32_10 生成器返回 32 位的伪随机数。
参数
- state
- - 指向要更新的状态的指针
返回值
32 位的伪随机数,类型为 unsigned int,所有位均有效可用。
描述
从 Philox4_32_10 生成器返回 32 位的伪随机数,如state所示,将生成器的位置增加一。
- __device__ unsigned int curand ( curandStateXORWOW_t* state )
-
从 XORWOW 生成器返回 32 位的伪随机数。
参数
- state
- - 指向要更新的状态的指针
返回值
32 位的伪随机数,类型为 unsigned int,所有位均有效可用。
描述
从 XORWOW 生成器返回 32 位的伪随机数,如state所示,将生成器的位置增加一。
- __device__ uint4 curand4 ( curandStatePhilox4_32_10_t* state )
-
从 Philox4_32_10 生成器返回 4 个 32 位伪随机数的元组。
参数
- state
- - 指向要更新的状态的指针
返回值
128 位的伪随机数,类型为 uint4,所有位均有效可用。
描述
从 Philox4_32_10 生成器返回 128 位的伪随机数,如state所示,将生成器的位置增加四。
- __host__ __forceinline__ curandStatus_t curandMakeMTGP32Constants ( const mtgp32_params_fast_t params[], mtgp32_kernel_params_t* p )
-
为 mtgp32 生成器设置常量参数。
参数
- params
- - 指向主机内存中 mtgp32_params_fast_t 类型数组的指针
- p
- - 指向设备内存中 mtgp32_kernel_params_t 类型结构的指针。
返回值
- 如果无法分配主机内存,则返回 CURAND_STATUS_ALLOCATION_FAILED
- 如果复制到设备内存失败,则返回 CURAND_STATUS_INITIALIZATION_FAILED
- 否则返回 CURAND_STATUS_SUCCESS
描述
此主机端辅助函数重新组织 CURAND_NUM_MTGP32_PARAMS 组生成器参数,以便内核函数使用,并将结果复制到设备内存中的指定位置。
- __host__ __forceinline__ curandStatus_t CURANDAPI curandMakeMTGP32KernelState ( curandStateMtgp32_t* s, mtgp32_params_fast_t params[], mtgp32_kernel_params_t* k, int n, unsigned long long seed )
-
为 mtgp32 生成器设置初始状态。
参数
- s
- - 指向设备内存中状态数组的指针
- params
- - 指向主机内存中 mtgp32_params_fast_t 类型数组的指针
- k
- - 指向设备内存中 mtgp32_kernel_params_t 类型结构的指针
- n
- - 要初始化的参数集/状态的数量
- seed
- - 种子值
返回值
- 如果无法分配主机内存状态,则返回 CURAND_STATUS_ALLOCATION_FAILED
- 如果复制到设备内存失败,则返回 CURAND_STATUS_INITIALIZATION_FAILED
- 否则返回 CURAND_STATUS_SUCCESS
描述
此主机端辅助函数为 mtgp32 生成器初始化多个状态(每个状态一个参数集)。为了实现这一点,它在主机内存中分配一个状态数组,初始化该数组,并将结果复制到设备内存。
- __device__ void curand_init ( curandDirectionVectors64_t direction_vectors, unsigned long long scramble_c, unsigned long long offset, curandStateScrambledSobol64_t* state )
-
初始化 Scrambled Sobol64 状态。
参数
- direction_vectors
- - 指向由 64 个 unsigned long long 值组成的数组的指针,该数组表示所需维度的方向向量
- scramble_c
- Scramble 常数
- offset
- - 序列中的绝对偏移量
- state
- - 指向要初始化的状态的指针
描述
在state中初始化 Sobol64 状态,使用给定的direction向量和offset.
方向向量是指向包含 64 个 unsigned long long 值的数组的设备指针。offset的所有输入值都是合法的。
- __device__ void curand_init ( curandDirectionVectors64_t direction_vectors, unsigned long long offset, curandStateSobol64_t* state )
-
初始化 Sobol64 状态。
参数
- direction_vectors
- - 指向由 64 个 unsigned long long 值组成的数组的指针,该数组表示所需维度的方向向量
- offset
- - 序列中的绝对偏移量
- state
- - 指向要初始化的状态的指针
描述
在state中初始化 Sobol64 状态,使用给定的direction向量和offset.
方向向量是指向包含 64 个 unsigned long long 值的数组的设备指针。offset的所有输入值都是合法的。
- __device__ void curand_init ( curandDirectionVectors32_t direction_vectors, unsigned int scramble_c, unsigned int offset, curandStateScrambledSobol32_t* state )
-
初始化 Scrambled Sobol32 状态。
参数
- direction_vectors
- - 指向由 32 个 unsigned int 值组成的数组的指针,该数组表示所需维度的方向向量
- scramble_c
- Scramble 常数
- offset
- - 序列中的绝对偏移量
- state
- - 指向要初始化的状态的指针
描述
在state中初始化 Sobol64 状态,使用给定的direction向量和offset.
中初始化 Sobol32 状态。方向向量是指向包含 32 个 unsigned int 值的数组的设备指针。offset的所有输入值都是合法的。
- __device__ void curand_init ( curandDirectionVectors32_t direction_vectors, unsigned int offset, curandStateSobol32_t* state )
-
初始化 Sobol32 状态。
参数
- direction_vectors
- - 指向由 32 个 unsigned int 值组成的数组的指针,该数组表示所需维度的方向向量
- offset
- - 序列中的绝对偏移量
- state
- - 指向要初始化的状态的指针
描述
在state中初始化 Sobol64 状态,使用给定的direction向量和offset.
中初始化 Sobol32 状态。方向向量是指向包含 32 个 unsigned int 值的数组的设备指针。offset的所有输入值都是合法的。
- __device__ void curand_init ( unsigned long long seed, unsigned long long subsequence, unsigned long long offset, curandStateMRG32k3a_t* state )
-
初始化 MRG32k3a 状态。
参数
- seed
- - 用作种子的任意位
- subsequence
- - 要开始的子序列
- offset
- - 序列中的绝对偏移量
- state
- - 指向要初始化的状态的指针
描述
在state中初始化 Sobol64 状态,使用给定的seed, subsequence和offset.
中初始化 MRG32k3a 状态。seed, subsequence和offset的所有输入值都是合法的。subsequence的所有输入值都将被截断为 51 位,以避免运行到下一个序列中
值 0 表示seed将状态设置为原始发布版本的值MRG32k3a算法。
- __device__ void curand_init ( unsigned long long seed, unsigned long long subsequence, unsigned long long offset, curandStatePhilox4_32_10_t* state )
-
初始化 Philox4_32_10 状态。
参数
- seed
- - 用作种子的任意位
- subsequence
- - 要开始的子序列
- offset
- - 子序列中的绝对偏移量
- state
- - 指向要初始化的状态的指针
描述
在state中初始化 Sobol64 状态,使用给定的seed、p\ 子序列和offset.
中初始化 Philox4_32_10 状态。seed, subseqence和offset的所有输入值都是合法的。seed 的每个 264 个可能值选择一个长度为 2130 的独立序列。跳过序列的前 266 * subsequence + offset 个值。即,子序列的长度为 266。
- __device__ void curand_init ( unsigned long long seed, unsigned long long subsequence, unsigned long long offset, curandStateXORWOW_t* state )
-
初始化 XORWOW 状态。
参数
- seed
- - 用作种子的任意位
- subsequence
- - 要开始的子序列
- offset
- - 序列中的绝对偏移量
- state
- - 指向要初始化的状态的指针
描述
在state中初始化 Sobol64 状态,使用给定的seed, subsequence和offset.
中初始化 MRG32k3a 状态。seed, subsequence和offset中初始化 XORWOW 状态。subsequence和offset的大值是合法的。
值 0 表示seed将状态设置为原始发布版本的值需要更多计算,因此需要更多时间才能完成。算法。
- __device__ float curand_log_normal ( curandStateScrambledSobol64_t* state, float mean, float stddev )
-
从 scrambled Sobol64 生成器返回一个对数正态分布的 float。
参数
- state
- - 指向要更新的状态的指针
- mean
- - 相关正态分布的均值
- stddev
- - 相关正态分布的标准差
返回值
对数正态分布的 float,均值为mean,标准差为stddev
描述
从均值为mean,标准差为stddev的正态分布中导出一个对数正态分布的 float,来自state所示,将生成器的位置增加一。
中的 scrambled Sobol64 生成器。该实现使用逆累积分布函数生成正态分布的结果,然后转换为对数正态分布。
- __device__ float curand_log_normal ( curandStateSobol64_t* state, float mean, float stddev )
-
从 Sobol64 生成器返回一个对数正态分布的 float。
参数
- state
- - 指向要更新的状态的指针
- mean
- - 相关正态分布的均值
- stddev
- - 相关正态分布的标准差
返回值
对数正态分布的 float,均值为mean,标准差为stddev
描述
从均值为mean,标准差为stddev来自state所示,将生成器的位置增加一。
中的 scrambled Sobol64 生成器。该实现使用逆累积分布函数生成正态分布的结果,然后转换为对数正态分布。
- __device__ float curand_log_normal ( curandStateScrambledSobol32_t* state, float mean, float stddev )
-
从 scrambled Sobol32 生成器返回一个对数正态分布的 float。
参数
- state
- - 指向要更新的状态的指针
- mean
- - 相关正态分布的均值
- stddev
- - 相关正态分布的标准差
返回值
对数正态分布的 float,均值为mean,标准差为stddev
描述
从均值为mean,标准差为stddev来自state所示,将生成器的位置增加一。
中的 scrambled Sobol32 生成器。该实现使用逆累积分布函数生成正态分布的结果,然后将结果转换为对数正态分布。
- __device__ float curand_log_normal ( curandStateSobol32_t* state, float mean, float stddev )
-
从 Sobol32 生成器返回一个对数正态分布的 float。
参数
- state
- - 指向要更新的状态的指针
- mean
- - 相关正态分布的均值
- stddev
- - 相关正态分布的标准差
返回值
对数正态分布的 float,均值为mean,标准差为stddev
描述
从均值为mean,标准差为stddev来自state所示,将生成器的位置增加一。
中的 scrambled Sobol32 生成器。该实现使用逆累积分布函数生成正态分布的结果,然后将结果转换为对数正态分布。
- __device__ float curand_log_normal ( curandStateMtgp32_t* state, float mean, float stddev )
-
从 MTGP32 生成器返回一个对数正态分布的 float。
参数
- state
- - 指向要更新的状态的指针
- mean
- - 相关正态分布的均值
- stddev
- - 相关正态分布的标准差
返回值
对数正态分布的 float,均值为mean,标准差为stddev
描述
从均值为mean,标准差为stddev来自state中的 MTGP32 生成器,生成器的位置增加。
中的 scrambled Sobol32 生成器。该实现使用逆累积分布函数生成正态分布的结果,然后将结果转换为对数正态分布。
- __device__ float curand_log_normal ( curandStateMRG32k3a_t* state, float mean, float stddev )
-
从 MRG32k3a 生成器返回一个对数正态分布的 float。
参数
- state
- - 指向要更新的状态的指针
- mean
- - 相关正态分布的均值
- stddev
- - 相关正态分布的标准差
返回值
对数正态分布的 float,均值为mean,标准差为stddev
描述
从均值为mean,标准差为stddev来自state所示,将生成器的位置增加一。
中的 MRG32k3a 生成器。该实现使用 Box-Muller 变换生成两个正态分布的结果,将它们转换为对数正态分布,然后一次返回一个结果。有关一次返回两个结果的更高效版本,请参见curand_log_normal2()。
- __device__ float curand_log_normal ( curandStatePhilox4_32_10_t* state, float mean, float stddev )
-
从 Philox4_32_10 生成器返回一个对数正态分布的 float。
参数
- state
- - 指向要更新的状态的指针
- mean
- - 相关正态分布的均值
- stddev
- - 相关正态分布的标准差
返回值
对数正态分布的 float,均值为mean,标准差为stddev
描述
从均值为mean,标准差为stddev来自state所示,将生成器的位置增加一。
中的 MRG32k3a 生成器。该实现使用 Box-Muller 变换生成两个正态分布的结果,将它们转换为对数正态分布,然后一次返回一个结果。有关一次返回两个结果的更高效版本,请参见curand_log_normal2()。
- __device__ float curand_log_normal ( curandStateXORWOW_t* state, float mean, float stddev )
-
从 XORWOW 生成器返回一个对数正态分布的 float。
参数
- state
- - 指向要更新的状态的指针
- mean
- - 相关正态分布的均值
- stddev
- - 相关正态分布的标准差
返回值
对数正态分布的 float,均值为mean,标准差为stddev
描述
从均值为mean,标准差为stddev来自state所示,将生成器的位置增加一。
中的 MRG32k3a 生成器。该实现使用 Box-Muller 变换生成两个正态分布的结果,将它们转换为对数正态分布,然后一次返回一个结果。有关一次返回两个结果的更高效版本,请参见curand_log_normal2()。
- __device__ float2 curand_log_normal2 ( curandStateMRG32k3a_t* state, float mean, float stddev )
-
从 MRG32k3a 生成器返回两个正态分布的 float。
参数
- state
- - 指向要更新的状态的指针
- mean
- - 相关正态分布的均值
- stddev
- - 相关正态分布的标准差
返回值
对数正态分布的 float2,其中每个元素来自均值为mean,标准差为stddev
描述
的分布。mean,标准差为stddev来自state返回两个对数正态分布的 float,它们从均值为
的正态分布导出,生成器的位置增加二。
- __device__ float2 curand_log_normal2 ( curandStatePhilox4_32_10_t* state, float mean, float stddev )
-
从 Philox4_32_10 生成器返回两个正态分布的 float。
参数
- state
- - 指向要更新的状态的指针
- mean
- - 相关正态分布的均值
- stddev
- - 相关正态分布的标准差
返回值
对数正态分布的 float2,其中每个元素来自均值为mean,标准差为stddev
描述
的分布。mean,标准差为stddev来自state返回两个对数正态分布的 float,它们从均值为
的正态分布导出,生成器的位置增加二。
- __device__ float2 curand_log_normal2 ( curandStateXORWOW_t* state, float mean, float stddev )
-
从 XORWOW 生成器返回两个正态分布的 float。
参数
- state
- - 指向要更新的状态的指针
- mean
- - 相关正态分布的均值
- stddev
- - 相关正态分布的标准差
返回值
对数正态分布的 float2,其中每个元素来自均值为mean,标准差为stddev
描述
的分布。mean,标准差为stddev来自state返回两个对数正态分布的 float,它们从均值为
的正态分布导出,生成器的位置增加二。
- __device__ double2 curand_log_normal2_double ( curandStateMRG32k3a_t* state, double mean, double stddev )
-
从 MRG32k3a 生成器返回两个对数正态分布的 double。
参数
- state
- - 指向要更新的状态的指针
- mean
- - 相关正态分布的均值
- stddev
- - 相关正态分布的标准差
返回值
对数正态分布的 double2,其中每个元素来自均值为mean,标准差为stddev
描述
的分布。mean,标准差为stddev来自state返回两个对数正态分布的 float,它们从均值为
返回两个对数正态分布的 double,它们从均值为
- __device__ double2 curand_log_normal2_double ( curandStatePhilox4_32_10_t* state, double mean, double stddev )
-
从 Philox4_32_10 生成器返回两个对数正态分布的 double。
参数
- state
- - 指向要更新的状态的指针
- mean
- - 相关正态分布的均值
- stddev
- - 相关正态分布的标准差
返回值
对数正态分布的 double4,其中每个元素来自均值为mean,标准差为stddev
描述
的分布。mean,标准差为stddev来自state所示,将生成器的位置增加四。
返回两个对数正态分布的 double,它们从均值为
- __device__ double2 curand_log_normal2_double ( curandStateXORWOW_t* state, double mean, double stddev )
-
从 XORWOW 生成器返回两个对数正态分布的 double。
参数
- state
- - 指向要更新的状态的指针
- mean
- - 相关正态分布的均值
- stddev
- - 相关正态分布的标准差
返回值
对数正态分布的 double2,其中每个元素来自均值为mean,标准差为stddev
描述
的分布。mean,标准差为stddev来自state返回两个对数正态分布的 float,它们从均值为
返回两个对数正态分布的 double,它们从均值为
- __device__ float4 curand_log_normal4 ( curandStatePhilox4_32_10_t* state, float mean, float stddev )
-
从 Philox4_32_10 生成器返回四个正态分布的 float。
参数
- state
- - 指向要更新的状态的指针
- mean
- - 相关正态分布的均值
- stddev
- - 相关正态分布的标准差
返回值
对数正态分布的 float4,其中每个元素来自均值为mean,标准差为stddev
描述
的分布。mean,标准差为stddev来自state所示,将生成器的位置增加四。
的正态分布导出,生成器的位置增加二。
- __device__ double curand_log_normal_double ( curandStateScrambledSobol64_t* state, double mean, double stddev )
-
从 scrambled Sobol64 生成器返回一个对数正态分布的 double。
参数
- state
- - 指向要更新的状态的指针
- mean
- - 相关正态分布的均值
- stddev
- - 相关正态分布的标准差
返回值
对数正态分布的 double,均值为mean,标准差为stddev
描述
。mean,标准差为stddev的正态分布中导出一个对数正态分布的 float,来自state所示,将生成器的位置增加一。
返回一个从均值为
- __device__ double curand_log_normal_double ( curandStateSobol64_t* state, double mean, double stddev )
-
从 Sobol64 生成器返回一个对数正态分布的 double。
参数
- state
- - 指向要更新的状态的指针
- mean
- - 相关正态分布的均值
- stddev
- - 相关正态分布的标准差
返回值
对数正态分布的 double,均值为mean,标准差为stddev
描述
。mean,标准差为stddev来自state所示,将生成器的位置增加一。
返回一个从均值为
- __device__ double curand_log_normal_double ( curandStateScrambledSobol32_t* state, double mean, double stddev )
-
从 scrambled Sobol32 生成器返回一个对数正态分布的 double。
参数
- state
- - 指向要更新的状态的指针
- mean
- - 相关正态分布的均值
- stddev
- - 相关正态分布的标准差
返回值
对数正态分布的 double,均值为mean,标准差为stddev
描述
返回一个从均值为mean,标准差为stddev来自state所示,将生成器的位置增加一。
的正态分布导出的对数正态分布的 double。该实现使用逆累积分布函数生成正态分布的结果,并将其转换为对数正态分布。
- __device__ double curand_log_normal_double ( curandStateSobol32_t* state, double mean, double stddev )
-
从 Sobol32 生成器返回一个对数正态分布的 double。
参数
- state
- - 指向要更新的状态的指针
- mean
- - 相关正态分布的均值
- stddev
- - 相关正态分布的标准差
返回值
对数正态分布的 double,均值为mean,标准差为stddev
描述
返回一个从均值为mean,标准差为stddev来自state所示,将生成器的位置增加一。
的正态分布导出的对数正态分布的 double。该实现使用逆累积分布函数生成正态分布的结果,并将其转换为对数正态分布。
- __device__ double curand_log_normal_double ( curandStateMtgp32_t* state, double mean, double stddev )
-
从 MTGP32 生成器返回一个对数正态分布 double 值。
参数
- state
- - 指向要更新的状态的指针
- mean
- - 相关正态分布的均值
- stddev
- - 相关正态分布的标准差
返回值
对数正态分布的 double,均值为mean,标准差为stddev
描述
返回一个从均值为mean,标准差为stddev来自state中的 MTGP32 生成器,生成器的位置增加。
的正态分布导出的对数正态分布的 double。该实现使用逆累积分布函数生成正态分布的结果,并将其转换为对数正态分布。
- __device__ double curand_log_normal_double ( curandStateMRG32k3a_t* state, double mean, double stddev )
-
从 MRG32k3a 生成器返回一个对数正态分布 double 值。
参数
- state
- - 指向要更新的状态的指针
- mean
- - 相关正态分布的均值
- stddev
- - 相关正态分布的标准差
返回值
对数正态分布的 double,均值为mean,标准差为stddev
描述
。mean,标准差为stddev来自state中的 MTGP32 生成器,生成器的位置增加。
该实现使用 Box-Muller 变换生成两个正态分布结果,将它们转换为对数正态分布,然后一次返回一个结果。有关更高效的版本(一次返回两个结果),请参阅 curand_log_normal2_double()。
- __device__ double curand_log_normal_double ( curandStatePhilox4_32_10_t* state, double mean, double stddev )
-
从 Philox4_32_10 生成器返回一个对数正态分布 double 值。
参数
- state
- - 指向要更新的状态的指针
- mean
- - 相关正态分布的均值
- stddev
- - 相关正态分布的标准差
返回值
对数正态分布的 double,均值为mean,标准差为stddev
描述
。mean,标准差为stddev来自state中的 MTGP32 生成器,生成器的位置增加。
该实现使用 Box-Muller 变换生成两个正态分布结果,将它们转换为对数正态分布,然后一次返回一个结果。有关更高效的版本(一次返回两个结果),请参阅 curand_log_normal2_double()。
- __device__ double curand_log_normal_double ( curandStateXORWOW_t* state, double mean, double stddev )
-
从 XORWOW 生成器返回一个对数正态分布 double 值。
参数
- state
- - 指向要更新的状态的指针
- mean
- - 相关正态分布的均值
- stddev
- - 相关正态分布的标准差
返回值
对数正态分布的 double,均值为mean,标准差为stddev
描述
。mean,标准差为stddev来自state中的 MTGP32 生成器,生成器的位置增加。
该实现使用 Box-Muller 变换生成两个正态分布结果,将它们转换为对数正态分布,然后一次返回一个结果。有关更高效的版本(一次返回两个结果),请参阅 curand_log_normal2_double()。
- __device__ float curand_mtgp32_single ( curandStateMtgp32_t* state )
-
从 mtgp32 生成器返回一个均匀分布的 float 值。
参数
- state
- - 指向要更新的状态的指针
返回值
均匀分布的 float 值,范围在0.0f和1.0f
描述
返回一个均匀分布的 float 值,范围在0.0f和1.0f来自 mtgp32 生成器,位于state,并递增生成器的位置。输出范围不包括0.0f但包括1.0f。永远不会返回反常化的浮点输出。
注意:此均匀分布 float 值的替代推导是为了与原始源代码的完整性而提供的
- __device__ float curand_mtgp32_single_specific ( curandStateMtgp32_t* state, unsigned char index, unsigned char n )
-
从 mtgp32 生成器中的特定位置返回一个均匀分布的 float 值。
参数
- state
- - 指向要更新的状态的指针
- index
- - 状态内位置的索引 (0..255),从中抽取并更新
- n
- - 此调用中正在更新的此状态中的位置总数
返回值
均匀分布的 float 值,范围在0.0f和1.0f
描述
返回一个均匀分布的 float 值,范围在0.0f和1.0f从位置index的 mtgp32 生成器中,位于state,并将生成器的位置递增n个位置,这必须是线程块在此调用中更新的状态中的位置总数。输出范围不包括0.0f但包括1.0f。永远不会返回反常化的浮点输出。
注意 1:线程索引必须在 0...n- 1 范围内。更新的位置数不得超过 256。一个线程块可以更新多个状态,但一个给定的状态不能被多个线程块更新。
注意 2:此均匀分布 float 值的替代推导是为了与原始源代码的完整性而提供的
- __device__ unsigned int curand_mtgp32_specific ( curandStateMtgp32_t* state, unsigned char index, unsigned char n )
-
从 mtgp32 生成器中的特定位置返回 32 位的伪随机数。
参数
- state
- - 指向要更新的状态的指针
- index
- - 状态内位置的索引 (0..255),从中抽取并更新
- n
- - 此调用中正在更新的此状态中的位置总数
返回值
32 位的伪随机数,类型为 unsigned int,所有位均有效可用。
描述
从位置index的 mtgp32 生成器中,位于state返回 32 位的伪随机数,并将生成器的位置递增n个位置,这必须是线程块在此调用中更新的状态中的位置总数。
注意:线程索引必须在 0... n - 1 范围内。更新的位置数不得超过 256。一个线程块可以更新多个状态,但一个给定的状态不能被多个线程块更新。
- __device__ float curand_normal ( curandStateScrambledSobol64_t* state )
-
从 scrambled Sobol64 生成器返回一个正态分布 float 值。
参数
- state
- - 指向要更新的状态的指针
返回值
均值为0.0f,标准差为1.0f
描述
返回一个均值为0.0f,标准差为1.0f的正态分布中导出一个对数正态分布的 float,来自state所示,将生成器的位置增加一。
返回一个从均值为
- __device__ float curand_normal ( curandStateSobol64_t* state )
-
从 Sobol64 生成器返回一个正态分布 float 值。
参数
- state
- - 指向要更新的状态的指针
返回值
均值为0.0f,标准差为1.0f
描述
返回一个均值为0.0f,标准差为1.0f来自state所示,将生成器的位置增加一。
返回一个从均值为
- __device__ float curand_normal ( curandStateScrambledSobol32_t* state )
-
从 scrambled Sobol32 生成器返回一个正态分布 float 值。
参数
- state
- - 指向要更新的状态的指针
返回值
均值为0.0f,标准差为1.0f
描述
返回一个均值为0.0f,标准差为1.0f来自state所示,将生成器的位置增加一。
返回一个从均值为
- __device__ float curand_normal ( curandStateSobol32_t* state )
-
从 Sobol32 生成器返回一个正态分布 float 值。
参数
- state
- - 指向要更新的状态的指针
返回值
均值为0.0f,标准差为1.0f
描述
返回一个均值为0.0f,标准差为1.0f来自state所示,将生成器的位置增加一。
返回一个从均值为
- __device__ float curand_normal ( curandStateMtgp32_t* state )
-
从 MTGP32 生成器返回一个正态分布 float 值。
参数
- state
- - 指向要更新的状态的指针
返回值
均值为0.0f,标准差为1.0f
描述
返回一个均值为0.0f,标准差为1.0f来自state中的 MTGP32 生成器,生成器的位置增加。
返回一个从均值为
- __device__ float curand_normal ( curandStateMRG32k3a_t* state )
-
从 MRG32k3a 生成器返回一个正态分布 float 值。
参数
- state
- - 指向要更新的状态的指针
返回值
均值为0.0f,标准差为1.0f
描述
返回一个均值为0.0f,标准差为1.0f来自state所示,将生成器的位置增加一。
该实现使用 Box-Muller 变换生成两个正态分布结果,然后一次返回一个结果。有关更高效的版本(一次返回两个结果),请参阅 curand_normal2()。
- __device__ float curand_normal ( curandStatePhilox4_32_10_t* state )
-
从 Philox4_32_10 生成器返回一个正态分布 float 值。
参数
- state
- - 指向要更新的状态的指针
返回值
均值为0.0f,标准差为1.0f
描述
返回一个均值为0.0f,标准差为1.0f来自state所示,将生成器的位置增加一。
该实现使用 Box-Muller 变换生成两个正态分布结果,然后一次返回一个结果。有关更高效的版本(一次返回两个结果),请参阅 curand_normal2()。
- __device__ float curand_normal ( curandStateXORWOW_t* state )
-
从 XORWOW 生成器返回一个正态分布 float 值。
参数
- state
- - 指向要更新的状态的指针
返回值
均值为0.0f,标准差为1.0f
描述
返回一个均值为0.0f,标准差为1.0f来自state所示,将生成器的位置增加一。
该实现使用 Box-Muller 变换生成两个正态分布结果,然后一次返回一个结果。有关更高效的版本(一次返回两个结果),请参阅 curand_normal2()。
- __device__ float2 curand_normal2 ( curandStateMRG32k3a_t* state )
-
从 MRG32k3a 生成器返回两个正态分布的 float。
参数
- state
- - 指向要更新的状态的指针
返回值
正态分布 float2,其中每个元素都来自均值为0.0f,标准差为1.0f
描述
返回两个均值为0.0f,标准差为1.0f来自state返回两个对数正态分布的 float,它们从均值为
的正态分布 float 值。该实现使用 Box-Muller 变换生成两个正态分布结果。
- __device__ float2 curand_normal2 ( curandStatePhilox4_32_10_t* state )
-
从 Philox4_32_10 生成器返回两个正态分布的 float。
参数
- state
- - 指向要更新的状态的指针
返回值
正态分布 float2,其中每个元素都来自均值为0.0f,标准差为1.0f
描述
返回两个均值为0.0f,标准差为1.0f来自state返回两个对数正态分布的 float,它们从均值为
的正态分布 float 值。该实现使用 Box-Muller 变换生成两个正态分布结果。
- __device__ float2 curand_normal2 ( curandStateXORWOW_t* state )
-
从 XORWOW 生成器返回两个正态分布的 float。
参数
- state
- - 指向要更新的状态的指针
返回值
正态分布 float2,其中每个元素都来自均值为0.0f,标准差为1.0f
描述
返回两个均值为0.0f,标准差为1.0f来自state返回两个对数正态分布的 float,它们从均值为
的正态分布 float 值。该实现使用 Box-Muller 变换生成两个正态分布结果。
- __device__ double2 curand_normal2_double ( curandStateMRG32k3a_t* state )
-
从 MRG32k3a 生成器返回两个正态分布 double 值。
参数
- state
- - 指向要更新的状态的指针
返回值
正态分布 double2,其中每个元素都来自均值为0.0,标准差为1.0
描述
返回两个均值为0.0,标准差为1.0来自state中的 MTGP32 生成器,生成器的位置增加。
的正态分布 float 值。该实现使用 Box-Muller 变换生成两个正态分布结果。
- __device__ double2 curand_normal2_double ( curandStatePhilox4_32_10_t* state )
-
从 Philox4_32_10 生成器返回两个正态分布 double 值。
参数
- state
- - 指向要更新的状态的指针
返回值
正态分布 double2,其中每个元素都来自均值为0.0,标准差为1.0
描述
返回两个均值为0.0,标准差为1.0来自state,并将生成器的位置递增 2。
的正态分布 float 值。该实现使用 Box-Muller 变换生成两个正态分布结果。
- __device__ double2 curand_normal2_double ( curandStateXORWOW_t* state )
-
从 XORWOW 生成器返回两个正态分布 double 值。
参数
- state
- - 指向要更新的状态的指针
返回值
正态分布 double2,其中每个元素都来自均值为0.0,标准差为1.0
描述
返回两个均值为0.0,标准差为1.0来自state,并将生成器的位置递增 2。
的正态分布 float 值。该实现使用 Box-Muller 变换生成两个正态分布结果。
- __device__ float4 curand_normal4 ( curandStatePhilox4_32_10_t* state )
-
从 Philox4_32_10 生成器返回四个正态分布的 float。
参数
- state
- - 指向要更新的状态的指针
返回值
正态分布 float2,其中每个元素都来自均值为0.0f,标准差为1.0f
描述
返回四个均值为0.0f,标准差为1.0f来自state所示,将生成器的位置增加四。
的正态分布 float 值。该实现使用 Box-Muller 变换生成两个正态分布结果。
- __device__ double curand_normal_double ( curandStateScrambledSobol64_t* state )
-
从 scrambled Sobol64 生成器返回一个正态分布 double 值。
参数
- state
- - 指向要更新的状态的指针
返回值
均值为0.0,标准差为1.0
描述
返回一个均值为0.0,标准差为1.0的正态分布中导出一个对数正态分布的 float,来自state所示,将生成器的位置增加一。
返回一个从均值为
- __device__ double curand_normal_double ( curandStateSobol64_t* state )
-
从 Sobol64 生成器返回一个正态分布 double 值。
参数
- state
- - 指向要更新的状态的指针
返回值
均值为0.0,标准差为1.0
描述
返回一个均值为0.0,标准差为1.0来自state所示,将生成器的位置增加一。
返回一个从均值为
- __device__ double curand_normal_double ( curandStateScrambledSobol32_t* state )
-
从 scrambled Sobol32 生成器返回一个正态分布 double 值。
参数
- state
- - 指向要更新的状态的指针
返回值
均值为0.0,标准差为1.0
描述
返回一个均值为0.0,标准差为1.0来自state所示,将生成器的位置增加一。
返回一个从均值为
- __device__ double curand_normal_double ( curandStateSobol32_t* state )
-
从 Sobol32 生成器返回一个正态分布 double 值。
参数
- state
- - 指向要更新的状态的指针
返回值
均值为0.0,标准差为1.0
描述
返回一个均值为0.0,标准差为1.0来自state所示,将生成器的位置增加一。
返回一个从均值为
- __device__ double curand_normal_double ( curandStateMtgp32_t* state )
-
从 MTGP32 生成器返回一个正态分布 double 值。
参数
- state
- - 指向要更新的状态的指针
返回值
均值为0.0,标准差为1.0
描述
返回一个均值为0.0,标准差为1.0来自state中的 MTGP32 生成器,生成器的位置增加。
返回一个从均值为
- __device__ double curand_normal_double ( curandStateMRG32k3a_t* state )
-
从 MRG32k3a 生成器返回一个正态分布 double 值。
参数
- state
- - 指向要更新的状态的指针
返回值
均值为0.0,标准差为1.0
描述
返回一个均值为0.0,标准差为1.0来自state中的 MTGP32 生成器,生成器的位置增加。
该实现使用 Box-Muller 变换生成两个正态分布结果,然后一次返回一个结果。有关更高效的版本(一次返回两个结果),请参阅 curand_normal2_double()。
- __device__ double curand_normal_double ( curandStatePhilox4_32_10_t* state )
-
从 Philox4_32_10 生成器返回一个正态分布 double 值。
参数
- state
- - 指向要更新的状态的指针
返回值
均值为0.0,标准差为1.0
描述
返回一个均值为0.0,标准差为1.0来自state中的 MTGP32 生成器,生成器的位置增加。
该实现使用 Box-Muller 变换生成两个正态分布结果,然后一次返回一个结果。有关更高效的版本(一次返回两个结果),请参阅 curand_normal2_double()。
- __device__ double curand_normal_double ( curandStateXORWOW_t* state )
-
从 XORWOW 生成器返回一个正态分布 double 值。
参数
- state
- - 指向要更新的状态的指针
返回值
均值为0.0,标准差为1.0
描述
返回一个均值为0.0,标准差为1.0来自state中的 MTGP32 生成器,生成器的位置增加。
该实现使用 Box-Muller 变换生成两个正态分布结果,然后一次返回一个结果。有关更高效的版本(一次返回两个结果),请参阅 curand_normal2_double()。
- __device__ unsigned int curand_poisson ( curandStateScrambledSobol64_t* state, double lambda )
-
从 scrambled Sobol64 生成器返回一个泊松分布的 unsigned int 值。
参数
- state
- - 指向要更新的状态的指针
- lambda
- - 泊松分布的 Lambda 参数
返回值
具有 lambda 参数的泊松分布 unsigned int 值lambda
描述
从具有 lambda 参数的泊松分布中返回一个 unsigned int 值lambda的正态分布中导出一个对数正态分布的 float,来自state所示,将生成器的位置增加一。
- __device__ unsigned int curand_poisson ( curandStateSobol64_t* state, double lambda )
-
从 Sobol64 生成器返回一个泊松分布的 unsigned int 值。
参数
- state
- - 指向要更新的状态的指针
- lambda
- - 泊松分布的 Lambda 参数
返回值
具有 lambda 参数的泊松分布 unsigned int 值lambda
描述
从具有 lambda 参数的泊松分布中返回一个 unsigned int 值lambda来自state所示,将生成器的位置增加一。
- __device__ unsigned int curand_poisson ( curandStateScrambledSobol32_t* state, double lambda )
-
从 scrambled Sobol32 生成器返回一个泊松分布的 unsigned int 值。
参数
- state
- - 指向要更新的状态的指针
- lambda
- - 泊松分布的 Lambda 参数
返回值
具有 lambda 参数的泊松分布 unsigned int 值lambda
描述
从具有 lambda 参数的泊松分布中返回一个 unsigned int 值lambda来自state,并将生成器的位置递增 1。
- __device__ unsigned int curand_poisson ( curandStateSobol32_t* state, double lambda )
-
从 Sobol32 生成器返回一个泊松分布的 unsigned int 值。
参数
- state
- - 指向要更新的状态的指针
- lambda
- - 泊松分布的 Lambda 参数
返回值
具有 lambda 参数的泊松分布 unsigned int 值lambda
描述
从具有 lambda 参数的泊松分布中返回一个 unsigned int 值lambda来自state,并将生成器的位置递增 1。
- __device__ unsigned int curand_poisson ( curandStateMtgp32_t* state, double lambda )
-
从 MTGP32 生成器返回一个泊松分布的 unsigned int 值。
参数
- state
- - 指向要更新的状态的指针
- lambda
- - 泊松分布的 Lambda 参数
返回值
具有 lambda 参数的泊松分布 unsigned int 值lambda
描述
从具有 lambda 参数的泊松分布中返回一个 int 值lambda来自state,并将生成器的位置递增 1。
- __device__ unsigned int curand_poisson ( curandStateMRG32k3a_t* state, double lambda )
-
从 MRG32k3A 生成器返回一个泊松分布的 unsigned int 值。
参数
- state
- - 指向要更新的状态的指针
- lambda
- - 泊松分布的 Lambda 参数
返回值
具有 lambda 参数的泊松分布 unsigned int 值lambda
描述
从具有 lambda 参数的泊松分布中返回一个 unsigned int 值lambda来自state,并将生成器的位置递增一个可变的量,具体取决于所使用的算法。
- __device__ unsigned int curand_poisson ( curandStatePhilox4_32_10_t* state, double lambda )
-
从 Philox4_32_10 生成器返回一个泊松分布的 unsigned int 值。
参数
- state
- - 指向要更新的状态的指针
- lambda
- - 泊松分布的 Lambda 参数
返回值
具有 lambda 参数的泊松分布 unsigned int 值lambda
描述
从具有 lambda 参数的泊松分布中返回一个 unsigned int 值lambda来自state,并将生成器的位置递增一个可变的量,具体取决于所使用的算法。
- __device__ unsigned int curand_poisson ( curandStateXORWOW_t* state, double lambda )
-
从 XORWOW 生成器返回一个泊松分布的 unsigned int 值。
参数
- state
- - 指向要更新的状态的指针
- lambda
- - 泊松分布的 Lambda 参数
返回值
具有 lambda 参数的泊松分布 unsigned int 值lambda
描述
从具有 lambda 参数的泊松分布中返回一个 unsigned int 值lambda来自state,并将生成器的位置递增一个可变的量,具体取决于所使用的算法。
- __device__ uint4 curand_poisson4 ( curandStatePhilox4_32_10_t* state, double lambda )
-
从 Philox4_32_10 生成器返回四个泊松分布的 unsigned int 值。
参数
- state
- - 指向要更新的状态的指针
- lambda
- - 泊松分布的 Lambda 参数
返回值
具有 lambda 参数的泊松分布 unsigned int 值lambda
描述
从具有 lambda 参数的泊松分布中返回四个 unsigned int 值lambda来自state,并将生成器的位置递增一个可变的量,具体取决于所使用的算法。
- __device__ float curand_uniform ( curandStateScrambledSobol64_t* state )
-
从 scrambled Sobol64 生成器返回一个均匀分布的 float 值。
参数
- state
- - 指向要更新的状态的指针
返回值
均匀分布的 float 值,范围在0.0f和1.0f
描述
返回一个均匀分布的 float 值,范围在0.0f和1.0f的正态分布中导出一个对数正态分布的 float,来自state,并递增生成器的位置。输出范围不包括0.0f但包括1.0f。永远不会返回反常化的浮点输出。
该实现保证使用对curand().
- __device__ float curand_uniform ( curandStateSobol64_t* state )
-
从 Sobol64 生成器返回一个均匀分布的 float 值。
参数
- state
- - 指向要更新的状态的指针
返回值
均匀分布的 float 值,范围在0.0f和1.0f
描述
返回一个均匀分布的 float 值,范围在0.0f和1.0f来自state,并递增生成器的位置。输出范围不包括0.0f但包括1.0f。永远不会返回反常化的浮点输出。
该实现保证使用对curand().
- __device__ float curand_uniform ( curandStateScrambledSobol32_t* state )
-
从 scrambled Sobol32 生成器返回一个均匀分布的 float 值。
参数
- state
- - 指向要更新的状态的指针
返回值
均匀分布的 float 值,范围在0.0f和1.0f
描述
返回一个均匀分布的 float 值,范围在0.0f和1.0f来自state,并递增生成器的位置。输出范围不包括0.0f但包括1.0f。永远不会返回反常化的浮点输出。
该实现保证使用对curand().
- __device__ float curand_uniform ( curandStateSobol32_t* state )
-
从 Sobol32 生成器返回一个均匀分布的 float 值。
参数
- state
- - 指向要更新的状态的指针
返回值
均匀分布的 float 值,范围在0.0f和1.0f
描述
返回一个均匀分布的 float 值,范围在0.0f和1.0f来自state,并递增生成器的位置。输出范围不包括0.0f但包括1.0f。永远不会返回反常化的浮点输出。
该实现保证使用对curand().
- __device__ float curand_uniform ( curandStateMtgp32_t* state )
-
从 MTGP32 生成器返回一个均匀分布的 float 值。
参数
- state
- - 指向要更新的状态的指针
返回值
均匀分布的 float 值,范围在0.0f和1.0f
描述
返回一个均匀分布的 float 值,范围在0.0f和1.0f来自state,并递增生成器的位置。输出范围不包括0.0f但包括1.0f。永远不会返回反常化的浮点输出。
- __device__ float curand_uniform ( curandStatePhilox4_32_10_t* state )
-
从 Philox4_32_10 生成器返回一个均匀分布的 float 值。
参数
- state
- - 指向要更新的状态的指针
返回值
均匀分布的 float 值,范围在0.0和1.0
描述
返回一个均匀分布的 float 值,范围在0.0f和1.0f来自state,并递增生成器的位置。输出范围不包括0.0f但包括1.0f。永远不会返回反常化的浮点输出。
- __device__ float curand_uniform ( curandStateMRG32k3a_t* state )
-
从 MRG32k3a 生成器返回一个均匀分布的 float 值。
参数
- state
- - 指向要更新的状态的指针
返回值
均匀分布的 float 值,范围在0.0f和1.0f
描述
返回一个均匀分布的 float 值,范围在0.0f和1.0f来自state,并递增生成器的位置。输出范围不包括0.0f但包括1.0f。永远不会返回反常化的浮点输出。
该实现最多返回 23 位的尾数,最小返回值 \( 2^{-32} \)
- __device__ float curand_uniform ( curandStateXORWOW_t* state )
-
从 XORWOW 生成器返回一个均匀分布的 float 值。
参数
- state
- - 指向要更新的状态的指针
返回值
均匀分布的 float 值,范围在0.0f和1.0f
描述
返回一个均匀分布的 float 值,范围在0.0f和1.0f来自state,并递增生成器的位置。输出范围不包括0.0f但包括1.0f。永远不会返回反常化的浮点输出。
该实现可以使用任意次数的调用curand()以获取足够的随机位来创建返回值。当前的实现使用一次调用。
- __device__ double2 curand_uniform2_double ( curandStatePhilox4_32_10_t* state )
-
从 Philox4_32_10 生成器返回一个均匀分布的 2 个 double 值的元组。
参数
- state
- - 指向要更新的状态的指针
返回值
2 个均匀分布的 double 值,范围在0.0和1.0
描述
返回一个均匀分布的 2 个 double 值 (double4),范围在0.0和1.0来自state,并将生成器的位置递增 4。输出范围不包括0.0但包括1.0。永远不会返回反常化的浮点输出。
- __device__ float4 curand_uniform4 ( curandStatePhilox4_32_10_t* state )
-
从 Philox4_32_10 生成器返回一个均匀分布的 4 个 float 值的元组。
参数
- state
- - 指向要更新的状态的指针
返回值
均匀分布的 float 值,范围在0.0和1.0
描述
返回一个均匀分布的 4 个 float 值,范围在0.0f和1.0f来自state,并将生成器的位置递增 4。输出范围不包括0.0f但包括1.0f。永远不会返回反常化的浮点输出。
- __device__ double curand_uniform_double ( curandStateScrambledSobol64_t* state )
-
从 scrambled Sobol64 生成器返回一个均匀分布的 double 值。
参数
- state
- - 指向要更新的状态的指针
返回值
均匀分布的 double 值,范围在0.0和1.0
描述
返回一个均匀分布的 double 值,范围在0.0和1.0的正态分布中导出一个对数正态分布的 float,来自state,并递增生成器的位置。输出范围不包括0.0但包括1.0。永远不会返回反常化的浮点输出。
该实现保证使用对curand(),以保持序列的准随机特性。
- __device__ double curand_uniform_double ( curandStateSobol64_t* state )
-
从 Sobol64 生成器返回一个均匀分布的 double 值。
参数
- state
- - 指向要更新的状态的指针
返回值
均匀分布的 double 值,范围在0.0和1.0
描述
返回一个均匀分布的 double 值,范围在0.0和1.0来自state,并递增生成器的位置。输出范围不包括0.0但包括1.0。永远不会返回反常化的浮点输出。
该实现保证使用对curand(),以保持序列的准随机特性。
- __device__ double curand_uniform_double ( curandStateScrambledSobol32_t* state )
-
从 scrambled Sobol32 生成器返回一个均匀分布的 double 值。
参数
- state
- - 指向要更新的状态的指针
返回值
均匀分布的 double 值,范围在0.0和1.0
描述
返回一个均匀分布的 double 值,范围在0.0和1.0来自state,并递增生成器的位置。输出范围不包括0.0但包括1.0。永远不会返回反常化的浮点输出。
该实现保证使用对curand(),以保持序列的准随机特性。
请注意,该实现仅使用 32 个随机位来生成单个双精度值。
- __device__ double curand_uniform_double ( curandStateSobol32_t* state )
-
从 Sobol32 生成器返回一个均匀分布的 double 值。
参数
- state
- - 指向要更新的状态的指针
返回值
均匀分布的 double 值,范围在0.0和1.0
描述
返回一个均匀分布的 double 值,范围在0.0和1.0来自state,并递增生成器的位置。输出范围不包括0.0但包括1.0。永远不会返回反常化的浮点输出。
该实现保证使用对curand(),以保持序列的准随机特性。
请注意,该实现仅使用 32 个随机位来生成单个双精度值。
- __device__ double curand_uniform_double ( curandStatePhilox4_32_10_t* state )
-
从 Philox4_32_10 生成器返回一个均匀分布的 double 值。
参数
- state
- - 指向要更新的状态的指针
返回值
均匀分布的 double 值,范围在0.0f和1.0f
描述
返回一个均匀分布的 double 值,范围在0.0f和1.0f来自state,并递增生成器的位置。输出范围不包括0.0f但包括1.0f。永远不会返回反常化的浮点输出。
请注意,该实现仅使用 32 个随机位来生成单个双精度值。
建议使用 curand_uniform2_double()以获得更高质量的均匀分布双精度值。
- __device__ double curand_uniform_double ( curandStateMtgp32_t* state )
-
从 MTGP32 生成器返回一个均匀分布的 double 值。
参数
- state
- - 指向要更新的状态的指针
返回值
均匀分布的 double 值,范围在0.0f和1.0f
描述
返回一个均匀分布的 double 值,范围在0.0f和1.0f来自state,并递增生成器的位置。输出范围不包括0.0f但包括1.0f。永远不会返回反常化的浮点输出。
请注意,该实现仅使用 32 个随机位来生成单个双精度值。
- __device__ double curand_uniform_double ( curandStateMRG32k3a_t* state )
-
从 MRG32k3a 生成器返回一个均匀分布的 double 值。
参数
- state
- - 指向要更新的状态的指针
返回值
均匀分布的 double 值,范围在0.0和1.0
描述
返回一个均匀分布的 double 值,范围在0.0和1.0来自state,并递增生成器的位置。输出范围不包括0.0但包括1.0。永远不会返回反常化的浮点输出。
请注意,该实现最多返回 L'Ecuyer 的开创性论文中概述的 32 位尾数。
- __device__ double curand_uniform_double ( curandStateXORWOW_t* state )
-
从 XORWOW 生成器返回一个均匀分布的 double 值。
参数
- state
- - 指向要更新的状态的指针
返回值
均匀分布的 double 值,范围在0.0和1.0
描述
返回一个均匀分布的 double 值,范围在0.0和1.0来自state,并递增生成器的位置。输出范围不包括0.0但包括1.0。永远不会返回反常化的浮点输出。
该实现可以使用任意次数的调用curand()以获取足够的随机位来创建返回值。当前的实现正好使用两次调用。
-
template < typename T >
__device__ CURAND_STD::enable_if < CURAND_STD::is_same < curandStateSobol64_t* > ::type skipahead ( unsigned long long n, T state ) [inline] -
更新 Sobol64 状态以跳过n个元素。
参数
- n
- - 要跳过的元素数量
- state
- - 指向要更新的状态的指针
描述
更新state中的 Sobol64 状态以向前跳过n个元素。
的所有值n均有效。
-
template < typename T >
__device__ CURAND_STD::enable_if < CURAND_STD::is_same < curandStateSobol32_t* > ::type skipahead ( unsigned int n, T state ) [inline] -
更新 Sobol32 状态以跳过n个元素。
参数
- n
- - 要跳过的元素数量
- state
- - 指向要更新的状态的指针
描述
更新state中的 Sobol64 状态以向前跳过n个元素。
的所有值n均有效。
- __device__ void skipahead ( unsigned long long n, curandStateMRG32k3a_t* state )
-
更新 MRG32k3a 状态以跳过n个元素。
参数
- n
- - 要跳过的元素数量
- state
- - 指向要更新的状态的指针
描述
更新state中的 Sobol64 状态以向前跳过n个元素。
的所有值n中的 MRG32k3a 状态。所有值均有效。较大的值需要更多的计算,因此完成时间会更长。
- __device__ void skipahead ( unsigned long long n, curandStatePhilox4_32_10_t* state )
-
更新 Philox4_32_10 状态以跳过n个元素。
参数
- n
- - 要跳过的元素数量
- state
- - 指向要更新的状态的指针
描述
更新state中的 Sobol64 状态以向前跳过n个元素。
的所有值n均有效。
- __device__ void skipahead ( unsigned long long n, curandStateXORWOW_t* state )
-
更新 XORWOW 状态以跳过n个元素。
参数
- n
- - 要跳过的元素数量
- state
- - 指向要更新的状态的指针
描述
更新state中的 Sobol64 状态以向前跳过n个元素。
的所有值n中的 MRG32k3a 状态。所有值均有效。较大的值需要更多的计算,因此完成时间会更长。
- __device__ void skipahead_sequence ( unsigned long long n, curandStateMRG32k3a_t* state )
-
更新 MRG32k3a 状态以向前跳过n个序列。
参数
- n
- - 要跳过的序列数
- state
- - 指向要更新的状态的指针
描述
更新state中的 Sobol64 状态以向前跳过n个序列。每个序列的长度为 2127 个元素,因此这意味着该函数将向前跳过 2127 * n 个元素。
的所有值n中的 MRG32k3a 状态。所有值均有效。较大的值需要更多的计算,因此完成时间会更长。
- __device__ void skipahead_sequence ( unsigned long long n, curandStatePhilox4_32_10_t* state )
-
更新 Philox4_32_10 状态以向前跳过n个子序列。
参数
- n
- - 要跳过的子序列数
- state
- - 指向要更新的状态的指针
描述
更新state中的 Sobol64 状态以向前跳过n个子序列。每个子序列的长度为 266 个元素,因此这意味着该函数将向前跳过 266 * n 个元素。
的所有值n均有效。
- __device__ void skipahead_sequence ( unsigned long long n, curandStateXORWOW_t* state )
-
更新 XORWOW 状态以向前跳过n个子序列。
参数
- n
- - 要跳过的子序列数
- state
- - 指向要更新的状态的指针
描述
更新state中的 Sobol64 状态以向前跳过n个子序列。每个子序列的长度为 267 个元素,因此这意味着该函数将向前跳过 267 * n 个元素。
的所有值n中的 MRG32k3a 状态。所有值均有效。较大的值需要更多的计算,因此完成时间会更长。
- __device__ void skipahead_subsequence ( unsigned long long n, curandStateMRG32k3a_t* state )
-
更新 MRG32k3a 状态以向前跳过n个子序列。
参数
- n
- - 要跳过的子序列数
- state
- - 指向要更新的状态的指针
描述
更新state中的 Sobol64 状态以向前跳过n个子序列。每个子序列的长度为 2127
276 个元素,因此这意味着该函数将向前跳过 267 * n 个元素。
的有效值n为 0 到 251。注意n将被屏蔽为 51 位