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 関数を使用して配列を埋めることができるようになりました。じゃあどうすればいいの?可能な解決策は何ですか?