加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

在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(开勇哥的))

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有