CUDA 新版本 Visual Studio 和 CUDA 兼容性的小问题
Posted 爨爨爨好
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CUDA 新版本 Visual Studio 和 CUDA 兼容性的小问题相关的知识,希望对你有一定的参考价值。
▶ 升级到 Visual Studio 2017 和 CUDA 9.1 之后,直接编译以前的 CUDA C 程序出现了如下报错:
1 严重性 代码 说明 项目 文件 行 禁止显示状态 2 错误(活动) E0029 应输入表达式 cudaProject d:\\Code\\CUDA\\cudaProject\\cudaProject\\kernel.cu 116 3 错误(活动) E0029 应输入表达式 cudaProject d:\\Code\\CUDA\\cudaProject\\cudaProject\\kernel.cu 118 4 错误 MSB3721 命令“"D:\\Program\\CUDA9.1\\bin\\nvcc.exe" -gencode=arch=compute_30,code=\\"sm_30,compute_30\\" --use-local-env --cl-version 2017 -ccbin "D:\\Program\\VisualStudio2017\\VC\\Tools\\MSVC\\14.13.26128\\bin\\HostX86\\x64" -x cu -ID:\\Program\\CUDA9.1\\include -ID:\\Program\\CUDA9.1\\include -G --keep-dir x64\\Debug -maxrregcount=0 --machine 64 --compile -cudart static -g -DWIN32 -DWIN64 -D_DEBUG -D_CONSOLE -D_MBCS -Xcompiler "/EHsc /W3 /nologo /Od /FS /Zi /RTC1 /MDd " -o x64\\Debug\\kernel.cu.obj "D:\\Code\\CUDA\\cudaProject\\cudaProject\\kernel.cu"”已退出,返回代码为 2。 cudaProject D:\\Program\\VisualStudio2017\\Common7\\IDE\\VC\\VCTargets\\BuildCustomizations\\CUDA 9.1.targets 707 5 错误 C1189 #error: -- unsupported Microsoft Visual Studio version! Only the versions 2012, 2013, 2015 and 2017 are supported! cudaProject d:\\program\\cuda9.1\\include\\crt\\host_config.h 135
● 那两个“应输入表达式”是读不了 <<< 和 >>> 操作符;
● 最后那个错很直接,在 host_config.h 中有下列对 Visual Studio 的版本筛选,Visual Studio 2015 (v140) 的 _MSC_VER 等于 1900
1 #if defined(__CUDACC__) 2 3 ... 4 5 #if defined(_WIN32) 6 7 #if _MSC_VER < 1600 || _MSC_VER > 1911 8 9 #error -- unsupported Microsoft Visual Studio version! Only the versions 2012, 2013, 2015 and 2017 are supported! 10 11 #elif _MSC_VER == 1600 /* _MSC_VERION == 1600 */ 12 13 #pragma message("support for Microsoft Visual Studio 2010 has been deprecated!") 14 15 #endif /* _MSC_VER < 1600 || _MSC_VER > 1800 || _MSC_VERSION == 1600 */ 16 17 #endif /* _WIN32 */ 18 19 ... 20 21 #endif /* __CUDACC__ */
● 经指点(http://tieba.baidu.com/p/5476899594),把平台的版本从 Visual Studio 2017 (v141) 降到 Visual Studio 2015 (v140) 就编译通过了。
以上是关于CUDA 新版本 Visual Studio 和 CUDA 兼容性的小问题的主要内容,如果未能解决你的问题,请参考以下文章
CUDA 9.1 与 Visual Studio 2017 (VS2017 15.6.4) 的不兼容问题
Visual Studio 2013编译Tesseract 3.04
地表最强IDE ——Visual Studio 2022正式发布