CUDAサイトhttp://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html#kernelsからサンプルコードをテストしようとしています。
サイズ4の2つの配列AとBを追加し、それを配列Cに格納したいだけです。これまでのところ、次のようになっています。
#include <stdio.h>
#include "util.h"
void print_array(int* array, int size) {
int i;
for (i = 0; i < size; i++) {
printf("%d ", array[i]);
}
printf("\n");
}
__global__ void VecAdd(int* A, int* B, int* C) {
int i = threadIdx.x;
C[i] = A[i] + B[i];
}
int main(int argc , char **argv) {
int N = 4;
int i;
int *A = (int *) malloc(N * sizeof(int));
int *B = (int *) malloc(N * sizeof(int));
int *C = (int *) malloc(N * sizeof(int));
for (i = 0; i < N; i++) {
A[i] = i + 1;
B[i] = i + 1;
}
print_array(A, N);
print_array(B, N);
VecAdd<<<1, N>>>(A, B, C);
print_array(C, N);
return 0;
}
C配列(出力の最後の行)が2、4、6、8になることを期待していますが、追加されていないようです。
1 2 3 4
1 2 3 4
0 0 0 0
私は何が欠けていますか?