上面漏东西了
代码应该是下面的
浪里个浪 发表于 2016-12-29 14:27
刚刚对照了两个编译后的文件,发现是一样的,但是在java中执行结果却不一样 ...
cuda代码:
extern "C"
__global__ void add(int n, float *a, float *b, float *sum)
{
int i = blockIdx.x * blockDim.x + threadIdx.x;
//while(i < n) {
//sum = a[0] + blockIdx.x * blockDim.x + threadIdx.x;//测试是否开启了这么多线程块和线程
//i = i + blockDim.x * gridDim.x;
//}
for(int j=0; j<1000; j++) {
sum += a + b[j];
}
}
java代码:
float[] test = new float[1000];
for (int i = 0; i < 1000; i++) {
for (int j = 0; j < 1000; j++) {
test += a + b[j];
}
}
这里cuda第一个结果和java一样,后面的每个数都比前一个数大1001 |