很不容易在Win7 64位+VS2008上搭起来CUDA的编程环境,而且SDK的示例程序都能编译、运行成功、结果正确。自己利用CUDAVSWIZARD很高兴地开始编自己的第一个CUDA程序,编译链接也都成功,但是结果总不对,让GPU做简单的加法,结果总是0,郁闷,希望高手指点迷津!谢谢。
我的程序代码:
#include <stdio.h>
#include <cuda_runtime.h>
#include <cutil_inline.h>
global void add(int a, int b, int *c){
*c=a+b;
}
int main(void){
int c;
int *dev_c;
cutilSafeCall(cudaMalloc((void**)&dev_c, sizeof(int)));
add<<<1,1>>>(2,7,dev_c);
cutilSafeCall(cudaMemcpy(&c,dev_c,sizeof(int), cudaMemcpyDeviceToHost));
printf(“2+7=%d\n”,c);
cutilSafeCall(cudaFree(dev_c));
system(“pause”);
return 0;
}
执行时输出是:
2+7=0
请按任意键继续. . .
????????为什么输出总是0呢????????
[ 本帖最后由 keith_269 于 2011-3-6 22:57 编辑 ]