GPU中的Cuda填充阵列

时间:2013-04-03 22:22:06

标签: cuda

我想在GPU端填充我的阵列:

为了做到这一点:

首先我为主机端和设备端创建了数组:

int *d_A = NULL;
int *h_A = NULL;

然后我为主机阵列分配内存:

h_A = (int *)malloc(numOfData*sizeof(int));

然后我为设备数组分配:

cudaMalloc((void **) &d_A, numOfData * sizeof(int));

然后我将d_A传递给gpu端

cudaMemcpy(d_A, h_A, numOfData, cudaMemcpyHostToDevice);

并调用函数

  generateVector<<<1,2>>>(d_A,numOfData);

生成函数如下:

_global__ void generateVector(int * d_Data,int count) {

    for (int i = 0; i < count; i++) {
        d_Data[i] = rand_from_0_to_100_gen();
    }
}

我知道GPU方面现在允许我使用rand函数来填充我的数组。那我该怎么办?什么是可能的解决方案?

1 个答案:

答案 0 :(得分:0)

我相信,到目前为止,最简单的方法是使用CURAND库。你可以在CUDA SDK中找到一些样本 - 看看Monte-Carlo的样本。