vs中的CUDA Error:no kernel image is available for execution on device
问题还原运行一个程序:#include <stdio.h>__global__ void helloFromGPU (void){printf("Hello World from GPU!\n");}int main(void){// hello from cpuprintf("Hello World from CPU!\n");helloFromGPU <<<1,
·
问题还原
运行一个程序:
#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(你的显卡算力是多少就输入多少)
结果检查

更多推荐

所有评论(0)