我是CUDA的新手。这是我遇到的第一个问题:
我在网上测试了这样一段代码:
#include "stdio.h"
__global__ void add(int a, int b, int *c)
{
*c = a + b;
}
int main()
{
int a,b,c;
int *dev_c;
a=3;
b=4;
cudaMalloc((void**)&dev_c, sizeof(int));
add<<<1,1>>>(a,b,dev_c);
cudaMemcpy(&c, dev_c, sizeof(int), cudaMemcpyDeviceToHost);
printf("%d + %d is %d\n", a, b, c);
cudaFree(dev_c);
return 0;
}
它给出了:3 + 4 is 1
我汇编了:nvcc eg.cu
然后跑:./a.out
有什么不对吗?
供参考:
evn:Ubuntu 14.04,nvcc 5.5,机器:Nvidia Quadro K600(开普勒)
答案 0 :(得分:1)
@LeviBarnes感谢您提供的有用功能。它返回“没有检测到支持CUDA的设备”。
然后我从CUDA网站(运行版)安装了最新版本(6.5)。现在它运作良好! (原始版本来自apt-get;版本5.5)
即使我仍然不确定这个问题的原因。版本不匹配可能就是一个。