【发布时间】:2014-09-27 00:08:37
【问题描述】:
我是 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 (Kepler)
【问题讨论】:
-
通过添加调用 cudaGetLastError() 检查内核启动/执行错误。当我编译并运行它时,我看到 3 + 4 是 7。检查 nvidia-smi 或从示例目录运行 deviceQuery 以确保您的 GPU 一切正常。
标签: cuda