CUDA6.5调试向量求程序时出现invalid device function这一问题的解决方案
出现的问题
我也被这个问题困扰了很久,终于在OpenGPU论坛里找到了解决方法,以下是详细步骤:
1、 首先明确你的GPU的计算能力
进入这个步骤的前提是你的显卡是英伟达的,能够装上CUDA了。
方法一:下载GPU Caps Viewer,运行之后再‘CUDA’这个选项卡里有‘Compute Capability’一项,此项为计算能力(我的显卡型号是105M,计算能力是1.1)
方法二:如果你知道自己显卡的型号,可在http://bbs.gpuworld.cn/thread-120-1-1.html中查看计算能力
2、 修改项目属性
进入‘项目’->‘属性’->‘CUDA C/C++’->‘Code Generation’。如图,Code Generation是compute_11,sm_11,这是被我修改过的,这里的‘11’必须改成你GPU的计算能力,我的GPU计算能力是1.1,因此是11,如果是2.1,则是21,依此类推。
3、 添加头文件
这里我不是很懂,就说这个例程是向量加法,属于原子操作,那么还要在使用原子操作的文件中加入头文件#include <sm_11_atomic_functions.h>
这里的sm_11中的11同样是计算能力。
经过以上步骤,基本可以实现运行,结果如下
版权声明:本文为zju23原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。