CUDA 9.1/9.2 与 Visual Studio 2017 (VS2017 15.6.4) 的不兼容问题
2018年7月9日更新:
CUDA已推出9.2版本,最高支持MSVC++ 14.13 _MSC_VER == 1913 (Visual Studio 2017 version 15.6)。
然而最新版本是MSVC++ 14.14 _MSC_VER == 1914 (Visual Studio 2017 version 15.7),可见CUDA总比VS要慢一拍。
环境:
CUDA Toolkit - v9.1.85
Visual Studio 2017 (VS2017 15.6.4) + 平台工具集 v141(version 14.12,_MSC_VER=1912)或
CUDA Toolkit - v9.2.88.1
MSVC++ 14.13 _MSC_VER == 1913 (Visual Studio 2017 version 15.6)
原因:
CUDA未能兼容最新版工具集。
打开C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.1\include\crt\host_config.h,定位到133行:
可以看到当前CUDA支持的工具集版本。
由于当前工具集版本为1912
,故无法兼容。修改_MSC_VER > 1911为更高的数字可以消除报错,但是编译仍然是无法通过的。
解决方案:
安装兼容的工具集版本。在这里,我们可以选择1900、1910、1911版本工具集。
打开Visual Studio Installer,选择相应的工具集进行安装。
然后修改项目工具集即可。