我想在 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 函数来填充我的数组。那我该怎么办?可能的解决方案是什么?