我写了一个简单的测试cuda加法的程序
#include<iostream>
#include "cuda_runtime.h"
#include "device_launch_parameters.h"
__global__ void gpuadd(int d_a, int d_b, int* d_c) {
*d_c = d_a + d_b;
}
int main()
{
int h_c = 1;
int* d_c;
cudaMalloc((void**)&d_c, sizeof(int));
gpuadd << <1, 1 >> > (1, 4, d_c);
cudaMemcpy(&h_c, d_c, sizeof(int), cudaMemcpyDeviceToHost);
printf("1 + 4 = %d\n", h_c);
cudaFree(d_c);
return 0;
}
输出结果是1 + 4 = 0
运行有错误
查阅相关资料最终发现问题是vs中的显卡配置和自己电脑的不一样
我的电脑显卡是Geforce 930MX
查看显卡配置
vs应该配置为compute_50,sm_50
修改之后,代码成功运行
结果