CUDA返回值始终是0

猫猫虫(——) 猫猫虫(——) 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
代码如下:
#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
希望有大神指点
...全文

相关推荐

评论 1
收藏 已收藏
分享
返回顶部
猫猫虫(——)
CUDA 591 成员 2,925 内容