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正式发布

10个C#编程和Visual Studio使用技巧

地表最强IDE ——Visual Studio 2022正式发布

地表最强IDE ——Visual Studio 2022正式发布