2012年3月4日星期日

CUDA 4.1及VS2010 atomicAdd函数未定义的解决办法


测试cuda_by_example的atomicAdd源代码,出现:atomicAdd未定义的错误。这是由于该函数需要显卡支持CUDA 1.1及以上版本。网上流传的方法多是针对CUDA 2.X的,而CUDA 4中似乎将这个标签去掉了,在VS2010中找不到,与现实严重脱节;更有方法要求指定nvcc的参数,这让我们广大VS用户如何吐槽。。。为了节省更多人的时间,故将解决办法贴出。

VS 2010中如下设置:
项目(不是.cu文件)->属性->CUDA C/C++->Device->Code Generation,点击后选择“编辑”,取消“从父级或项目默认设置继承”前面的勾,在编辑框中输入“compute_11,sm_11”(不包含引号)。一路确定后再编译即可通过。

没有评论:

发表评论