我在Windows 7-SP1上安装了CUDA 7.5,并且我已经安装了Visual Studio 2013。 不幸的是,我无法运行任何CUDA代码。我甚至无法构建样本bandwidthTest。我收到以下错误:
C:\ ProgramData \ NVIDIA Corporation \ CUDA Samples \ v7.5 \ 1_Utilities \ bandwidthTest>" C:\ Program Files \ NVIDIA GPU 计算工具包\ CUDA \ v7.5 \ bin \ nvcc.exe" -gencode =拱= compute_20,代码= \" sm_20,compute_20 \" -gencode =拱= compute_30,代码= \" sm_30,compute_30 \" -gencode =拱= compute_35,代码= \" sm_35,compute_35 \" -gencode =拱= compute_37,代码= \" sm_37,compute_37 \" -gencode =拱= compute_50,代码= \" sm_50,compute_50 \" -gencode =拱= compute_52,代码= \" sm_52,compute_52 \" --use-local-env --cl-version 2013 -ccbin" C:\ Program Files(x86)\ Microsoft Visual Studio 12.0 \ VC \ bin \ x86_amd64" -I./ -I ../../ common / inc -I./ -I" C:\ Program Files \ NVIDIA GPU Computing Toolkit \ CUDA \ v7.5 / include" -I ../../ common / inc -I" C:\ Program Files \ NVIDIA GPU Computing Toolkit \ CUDA \ v7.5 \ include" --keep-dir x64 \ Release -maxrregcount = 0 --machine 64 --compile -cudart static -Xcompiler" / wd 4819" -DWIN32 -DWIN32 -D_MBCS -D_MBCS -Xcompiler" / EHsc / W3 / nologo / O2 / Zi / MT" -o x64 / Release / bandwidthTest.cu.obj" C:\ ProgramData \ NVIDIA 公司\ CUDA 样品\ V7.5 \ 1_Utilities \ bandwidthTest \ bandwidthTest.cu" 1 GT;的 NVCC 致命的:编译器' cl.exe'在PATH中不同于指定的那个 with -ccbin 1> C:\ Program Files (86)\的MSBuild \ Microsoft.Cpp \ V4.0 \ V120 \ BuildCustomizations \ CUDA 7.5.targets(604,9):错误MSB3721:命令"" C:\ Program Files \ NVIDIA GPU Computing Toolkit \ CUDA \ v7.5 \ bin \ nvcc.exe" -gencode =拱= compute_20,代码= \" sm_20,compute_20 \" -gencode =拱= compute_30,代码= \" sm_30,compute_30 \" -gencode =拱= compute_35,代码= \" sm_35,compute_35 \" -gencode =拱= compute_37,代码= \" sm_37,compute_37 \" -gencode =拱= compute_50,代码= \" sm_50,compute_50 \" -gencode =拱= compute_52,代码= \" sm_52,compute_52 \" --use-local-env --cl-version 2013 -ccbin " C:\ Program Files(x86)\ Microsoft Visual Studio 12.0 \ VC \ bin \ x86_amd64" -I ./ -I ../../ common / inc -I./ -I" C:\ Program Files \ NVIDIA GPU Computing Toolkit \ CUDA \ v7.5 / include" -I ../../ common / inc -I" C:\ Program Files \ NVIDIA GPU Computing Toolkit \ CUDA \ v7.5 \ include" --keep-dir x64 \ Release -maxrregcount = 0 --machine 64 --compile -cudart static -Xcompiler" / wd 4819" -DWIN32 -DWIN32 -D_MBCS -D_MBCS -Xcompiler" / EHsc / W3 / nologo / O2 / Zi / MT" -o x64 / Release / bandwidthTest.cu.obj" C:\ ProgramData \ NVIDIA 公司\ CUDA 样品\ V7.5 \ 1_Utilities \ bandwidthTest \ bandwidthTest.cu""退出了 代码1。 ==========构建:0成功,1个失败,0个最新,0个跳过==========
我的环境变量是:
路径:
C:\ Program Files(x86)\ Microsoft Visual Studio 12.0 \ VC \ bin \ x86_amd64 ; C:\ Program Files(x86)\ Microsoft Visual Studio 12.0 \ VC \ bin ; C:\ Program Files \ Microsoft Visual Studio 12.0 \ Common7 \ IDE; C:\ TDM-GCC-64 \ BIN; C:\ TDM-GCC-64 \ x86_64的-W64-mingw32的; C:\ ProgramData \ ORACLE \的Java \ javapath; C:\ PROGRAM Files \ NVIDIA GPU Computing Toolkit \ CUDA \ v7.5 \ bin; C:\ Program Files \ NVIDIA GPU Computing Toolkit \ CUDA \ v7.5 \ libnvvp; c:\ Program Files (x86)\ Intel \ iCLS Client \; c:\ Program Files \ Intel \ iCLS 客户端\; C:\ WINDOWS \ SYSTEM32; C:\ WINDOWS; C:\ WINDOWS \ SYSTEM32 \ WBEM; C:\ WINDOWS \ SYSTEM32 \ WindowsPowerShell \ V1.0 \; C:\ PROGRAM 文件(x86)\ Hewlett-Packard \ HP Performance Advisor; C:\ Program Files \ Intel \ Intel(R)管理引擎组件\ DAL; C:\ Program Files \ Intel \ Intel(R)Management Engine Components \ IPT; C:\ Program Files (x86)\ Intel \ Intel(R)管理引擎组件\ DAL; C:\ Program Files (x86)\ Intel \ Intel(R)管理引擎组件\ IPT; C:\ Program Files (x86)\ Microsoft SQL Server \ 100 \ Tools \ Binn \; C:\ Program Files \ Microsoft SQL Server \ 100 \ Tools \ Binn \; C:\ Program Files \ Microsoft SQL Server \ 100 \ DTS \ Binn \; C:\ Program Files \ TortoiseSVN \ bin; C:\ Program Files (x86)\ Windows Kits \ 8.1 \ Windows Performance Toolkit \; C:\ Program Files \ Microsoft SQL Server \ 110 \ Tools \ Binn \; C:\ Program Files (x86)\ Microsoft SDKs \ TypeScript \ 1.0 \; C:\ Program Files(x86)\ Microsoft SQL Server \ 110 \ Tools \ Binn \; C:\ Program Files \ Microsoft SQL Server \ 110 \ DTS \ Binn \; C:\ Program Files(x86)\ Microsoft SQL Server \ 110 \ Tools \ Binn \ ManagementStudio \; C:\ Program Files (x86)\ Microsoft SQL Server \ 110 \ DTS \ Binn \; C:\ Program Files \ R \ R-3.1.3 \ bin \ i386 \; C:\ Program Files(x86)\ NVIDIA 公司\的PhysX \共同
CUDA_PATH:
C:\ Program Files \ NVIDIA GPU Computing Toolkit \ CUDA \ v7.5
CUDA_PATH_V7_5:
C:\ Program Files \ NVIDIA GPU Computing Toolkit \ CUDA \ v7.5
我也改变了
包括+ =" -I $(TOP)/ include" $( SPACE )
到
nvcc.profile 中的包括+ =" -I $(TOP)/ include" " -I $(TOP)/包括/ cudart" " -IC:/程序 文件(x86)/ Microsoft Visual Studio 12.0 / VC / include" $( SPACE )
。
但到目前为止还没有运气! :( 请你帮助我好吗?! 感谢
答案 0 :(得分:2)
<强>问题强>
有Visual Studio编译器的版本:对于x86,对于x86_64和ARM平台(我听说第四个即将推出)。
问题很可能来自于您正在编译的平台与PATH
中的编译器平台不同。
<强>解决方案强>
您的全局bin
变量中绝不应包含Visual Studio的PATH
文件夹。
从PATH
中删除与Visual Studio相关的所有内容。 Visual Studio IDE和CUDA工具非常智能,可以在没有您帮助的情况下找到编译器(通过注册表项)。
如果要同时从命令行(不使用IDE)运行开发人员工具,请使用:
vcvarsall.bat
脚本)vcvarsall.bat
(临时设置环境以针对作为参数提供的平台构建)答案 1 :(得分:1)
我遇到同样的问题,这个问题的关键原因是 cl.exe 的名称是重复的。我安装了BullseyeCoverage(一种可以分析代码覆盖率的软件)。它具有相同的命名 cl.exe 程序。然后我卸载它,问题就消失了!
答案 2 :(得分:0)
如果上述答案对你不起作用,那么我就是用Visual Studio 2013和CUDA 6.5进行x64编译的。
我编辑了
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\BuildCustomizations\CUDA 6.5.props
那样
<VCBinDir Condition="'$(Platform)' == 'Win32'">$(VC_ExecutablePath_x86_x86)</VCBinDir>
<VCBinDir Condition="'$(Platform)' == 'x64'">$(VC_ExecutablePath_x64)</VCBinDir>