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,选择相应的工具集进行安装。

然后修改项目工具集即可。

参见:

https://blog.csdn.net/shenpibaipao/article/details/79519533

https://devtalk.nvidia.com/default/topic/1027299/cuda-9-failed-to-support-the-latest-visual-studio-2017-version-15-5/

https://blogs.msdn.microsoft.com/vcblog/2017/11/15/side-by-side-minor-version-msvc-toolsets-in-visual-studio-2017/