在VS2010下的CUDA程序中出现错误error : identifier “atomicAdd” is undef
(2013-01-08 18:38:11)
标签:
杂谈 |
分类: CUDA学习 |
在VS2010下的CUDA程序中出现错误error : identifier “atomicAdd” is undefined的解决办法搜集整理
error : identifier “atomicAdd” is undefined VS2010
解决方案:
Project properties里面
compute_10, sm_10
改成
compute_20, sm_20
就好了
求原理
error : identifier "atomicAdd" is
undefined
我的电脑是64位WIN 7系统,我安装的是visual studio 2010 + CUDA
4.0, (GTX580的显卡)肯定是支持ATOM的,我不知道是我nvcc的设置不对还是我的visual studio
2010中的GPU arch修改的不对,我具体的做法是“右键工程->属性->配置属性->CUDA C/C++
->Device->Code
Generation”编辑手动输入compute_11,sm_11(默认的只有compute_10,sm_10)。我在网上查的说1.1版本以上就可以支持ATOM操作了,所以才这样修改。而且我在头文件中#include
了。
百度上最多的解决方案是
“首先要确定你的显卡计算能力是否在1.1或者1.1以上,然后需要在项目(不是.cu文件)上右键“属性”-->"配置属性"-->"CUDA"-->"Advanced"-->"GPU
Architecture Compile Name"和"GPU Architecture Code Name"分别改成"1.1
(virtual) Arch"和"1.1 (hardware)
code"就可以了。环境是(VS2005+toolkit2.3、sdk2.3+CUDA_VS_Wizard_W32.2.0(开勇哥的))”
我的visual studio 2010没有百度方法上说的CUDA->Advanced,所以百度的方法好像没有太大作用。
原子函数调用时未被定义。。
在内核中调用原子函数(例如atomicAdd)时,如果编译的时候出现"error: identifier "atomicAdd"
is undefined
那么首先要确定你的显卡计算能力是否在1.1或者1.1以上,然后需要在项目(不是.cu文件)上右键“属性”-->"配置属性"-->"CUDA"-->"Advanced"-->"GPU Architecture Compile Name"和"GPU Architecture Code Name"分别改成"1.1 (virtual) Arch"和"1.1 (hardware) code"就可以了。
另附:我的环境是(VS2005+toolkit2.3、sdk2.3+CUDA_VS_Wizard_W32.2.0(开勇哥的))

加载中…