CUDA返回值始终是0

猫猫虫(——) 2020-10-20 08:05:16
代码如下:
#include <iostream>

__global__ void add(int a, int b, int *c){
*c = a + b;
}

int main(void){
int c = 1;
int *dev_c;

cudaMalloc((void**)&dev_c, sizeof(int));

add<<<1,1>>>(2, 7, dev_c);

cudaMemcpy(&c, dev_c, sizeof(int), cudaMemcpyDeviceToHost);
printf("2+7=%d\n", c);
cudaFree(dev_c);
return 0;
}

编译指令为:
nvcc -c test.cu -o test.obj
nvcc test.obj -o test.exe
编译没有错误,test.exe也可以运行,但是输出结果始终为
2+7=0

实在是太奇怪了,不知道怎么解决,其他程序也是一样,结果都是0
cuda版本11.1
希望有大神指点
...全文
969 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
cfun.cqupt 2021-01-21
  • 打赏
  • 举报
回复
我也遇到这个问题,请问您解决了吗

581

社区成员

发帖
与我相关
我的任务
社区描述
CUDA™是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。 它包含了CUDA指令集架构(ISA)以及GPU内部的并行计算引擎。
社区管理员
  • CUDA编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧