问题还原

运行一个程序:

#include <stdio.h>


__global__ void helloFromGPU (void)
{
    printf("Hello World from GPU!\n");
}

int main(void)
{
// hello from cpu
printf("Hello World from CPU!\n");

helloFromGPU <<<1, 10>>>();
cudaError_t err = cudaGetLastError();
if (err != cudaSuccess) {
    printf("CUDA ERROR: %s\n", cudaGetErrorString(err));
}

cudaDeviceReset();

return 0;
}

其输出为:
在这里插入图片描述
发现kernel函数根本没有执行,CUDA Error:no kernel image is available for execution on device,这个错误出现的原因是cuda版本过高,不匹配当前显卡,即显卡算力不匹配。

解决方法

首先查看自己计算机支持的显卡算力:
打开命令行,然后进入cuda安装目录下:
在这里插入图片描述
输入deviceQuery
在这里插入图片描述
可以看到显卡版本和支持的算力,算力为5.0
接着打开vs,右键项目-属性
在这里插入图片描述
然后在cuda c/c++、command line下面输入-arch sm_50(你的显卡算力是多少就输入多少)

结果检查

在这里插入图片描述

相关链接

Logo

一站式 AI 云服务平台

更多推荐