cuda之curand生成随机数

本文仅作为个人学习笔记,记载下来方便以后学习查询~.~

头文件中需包含

#include <curand_kernel.h>

实例代码:

__global__ void generateRandom(long rand)
{
    curandState state;
    int id = threadIdx.x;
    long seed = rand;
    curand_init(seed, id, 0, &state);
    printf("random double: %f \n",abs(curand_uniform_double(&state)));
}


int main()

{

       srand((unsigned int)time(NULL));

       cudaSetDevice(0);

       generateRandom<<<1,16>>>(rand());

       cudaDeviceReset();

       return 0;

}


关于cuRAND生成随机数的详细内容,可参考官方文档http://docs.nvidia.com/cuda/curand/device-api-overview.html#axzz4g04UXoC0,其中有详细的例子解释。

生成随机数的函数例子:

curandState localState;

unsigned int x = curand(&localState);

float x = curand_uniform(&localState);

float2 x = curand_normal2(&localState);

double x = curand_uniform_double(&localState);

double x = curand_normal_double(&localState);

cuda随机数的生成 API 为: 

  1. __device__ void
  2. curand_init (
  3.     unsigned long long seed, unsigned long long sequence,
  4.     unsigned long long offset, curandState_t *state)


  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值