错误:标识符“atomicAdd";在visual studio 2010 & 下未定义带有 Fermi GPU 的 cuda 4.2 [英] error : identifier "atomicAdd" is undefined under visual studio 2010 & cuda 4.2 with Fermi GPU

查看:14
本文介绍了错误:标识符“atomicAdd";在visual studio 2010 & 下未定义带有 Fermi GPU 的 cuda 4.2的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图在 Visual Studio 2010 下使用 CUDA 4.2 编译一些 CUDA 代码(我使用 Parallel Nsight 2.2 创建了这个 CUDA 项目),但我遇到了一个原子问题错误:标识符atomicAdd"未定义",我仍然查了几个论坛都解决不了.

I was trying to compile some CUDA codes under visual studio 2010 with CUDA 4.2 (I created this CUDA project using Parallel Nsight 2.2), but I encountered an atomic problem "error : identifier "atomicAdd" is undefined", which I still can't solve after checking several forums.

所以我尝试从 CUDA SDK 示例中获取一些信息.首先,我在 CUDA SDK 中运行了 simpleAtomicIntrinsics 示例,它通过了测试.然后,我将此示例中的所有文件复制到 Visual Studio 2010 中的一个新的 CUDA 4.2 项目中并编译它们,结果如下.

So I tried to get some information from CUDA SDK Samples. First, I ran the simpleAtomicIntrinsics sample in CUDA SDK, which passed its test. Then, I copied all the files in this sample to a new CUDA 4.2 project in visual studio 2010 and compiled them, Here is the result.

1>  E:CUDA exercise CodesCUDA_EXERCISESCUDA_EXERCISESCUDA_EXERCISES>"C:Program FilesNVIDIA GPU Computing ToolkitCUDAv4.2in
vcc.exe" -gencode=arch=compute_20,code="sm_20,compute_20" -gencode=arch=compute_20,code="sm_20,compute_20" -gencode=arch=compute_10,code="sm_10,compute_10" --use-local-env --cl-version 2010 -ccbin "c:Program Files (x86)Microsoft Visual Studio 10.0VCin"  -I"C:Program FilesNVIDIA GPU Computing ToolkitCUDAv4.2include"  -G  --keep-dir "Debug" -maxrregcount=0  --machine 32 --compile  -g    -Xcompiler "/EHsc /nologo /Od /Zi  /MDd  " -o "DebugsimpleAtomicIntrinsics.cu.obj" "E:CUDA exercise CodesCUDA_EXERCISESCUDA_EXERCISESCUDA_EXERCISESsimpleAtomicIntrinsics.cu" 
1>  simpleAtomicIntrinsics.cu
1>  tmpxft_00007220_00000000-3_simpleAtomicIntrinsics.compute_20.cudafe1.gpu
1>  tmpxft_00007220_00000000-7_simpleAtomicIntrinsics.compute_20.cudafe2.gpu
1>  simpleAtomicIntrinsics.cu
1>e:cuda exercise codescuda_exercisescuda_exercisescuda_exercisessimpleAtomicIntrinsics_kernel.cu(33): error : identifier "atomicAdd" is undefined
1>  
1>e:cuda exercise codescuda_exercisescuda_exercisescuda_exercisessimpleAtomicIntrinsics_kernel.cu(36): error : identifier "atomicSub" is undefined
1>  
1>e:cuda exercise codescuda_exercisescuda_exercisescuda_exercisessimpleAtomicIntrinsics_kernel.cu(39): error : identifier "atomicExch" is undefined
1>  
1>e:cuda exercise codescuda_exercisescuda_exercisescuda_exercisessimpleAtomicIntrinsics_kernel.cu(42): error : identifier "atomicMax" is undefined
1>  
1>e:cuda exercise codescuda_exercisescuda_exercisescuda_exercisessimpleAtomicIntrinsics_kernel.cu(45): error : identifier "atomicMin" is undefined
1>  
1>e:cuda exercise codescuda_exercisescuda_exercisescuda_exercisessimpleAtomicIntrinsics_kernel.cu(48): error : identifier "atomicInc" is undefined
1>  
1>e:cuda exercise codescuda_exercisescuda_exercisescuda_exercisessimpleAtomicIntrinsics_kernel.cu(51): error : identifier "atomicDec" is undefined
1>  
1>e:cuda exercise codescuda_exercisescuda_exercisescuda_exercisessimpleAtomicIntrinsics_kernel.cu(54): error : identifier "atomicCAS" is undefined
1>  
1>e:cuda exercise codescuda_exercisescuda_exercisescuda_exercisessimpleAtomicIntrinsics_kernel.cu(59): error : identifier "atomicAnd" is undefined
1>  
1>e:cuda exercise codescuda_exercisescuda_exercisescuda_exercisessimpleAtomicIntrinsics_kernel.cu(62): error : identifier "atomicOr" is undefined
1>  
1>e:cuda exercise codescuda_exercisescuda_exercisescuda_exercisessimpleAtomicIntrinsics_kernel.cu(65): error : identifier "atomicXor" is undefined
1>  
1>  11 errors detected in the compilation of "C:/Users/NIEXIA~1/AppData/Local/Temp/tmpxft_00007220_00000000-9_simpleAtomicIntrinsics.compute_10.cpp1.ii".
1>C:Program Files (x86)MSBuildMicrosoft.Cppv4.0BuildCustomizationsCUDA 4.2.targets(361,9): error MSB3721: The command ""C:Program FilesNVIDIA GPU Computing ToolkitCUDAv4.2in
vcc.exe" -gencode=arch=compute_20,code="sm_20,compute_20" -gencode=arch=compute_20,code="sm_20,compute_20" -gencode=arch=compute_10,code="sm_10,compute_10" --use-local-env --cl-version 2010 -ccbin "c:Program Files (x86)Microsoft Visual Studio 10.0VCin"  -I"C:Program FilesNVIDIA GPU Computing ToolkitCUDAv4.2include"  -G  --keep-dir "Debug" -maxrregcount=0  --machine 32 --compile  -g    -Xcompiler "/EHsc /nologo /Od /Zi  /MDd  " -o "DebugsimpleAtomicIntrinsics.cu.obj" "E:CUDA exercise CodesCUDA_EXERCISESCUDA_EXERCISESCUDA_EXERCISESsimpleAtomicIntrinsics.cu"" exited with code 2.
1>
1>Build FAILED.

顺便说一句,我可以在这个 vs2010 CUDA 项目下运行其他示例,例如时钟、matrixMul 等.(这意味着包含路径设置正确)

By the way, I can run other samples such as clock, matrixMul, etc. under this vs2010 CUDA Project. (This means the include path is set correctly)

我用谷歌搜索并找到以下链接 一些问题CUDA 内核操作中的原子添加.我根据它更改了项目和.cu文件的属性,但仍然无法解决问题.

I googled it and found the following link Some issue with Atomic add in CUDA kernel operation. I changed the properties of both project and the .cu file according to it, but still can't solve the problem.

有什么建议吗?

推荐答案

Atomics 在计算架构 1.0 下不可用,但您仍在尝试根据构建日志对其进行编译.尝试从您的 CUDA 项目属性中删除对 compute_10sm_10 的引用,并仅针对计算架构 2.0(GeForce 400 系列和更新版本)进行编译.

Atomics are unavailable under compute architecture 1.0, but you're still trying to compile for it according to your build log. Try removing references to compute_10 and sm_10 from your CUDA project properties and compiling for just compute architecture 2.0 (GeForce 400 series and newer).

这篇关于错误:标识符“atomicAdd";在visual studio 2010 & 下未定义带有 Fermi GPU 的 cuda 4.2的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆