与VS 2017的CUDA 9不支持的错误

时间:2017-12-05 03:07:34

标签: c++ visual-studio cuda

我最近更新了我的VS 2017,现在我甚至无法构建默认的CUDA项目(添加了矢量的项目)。

我怀疑这是由于以下错误造成的:

Severity    Code    Description Project File    Line    Suppression State
Error   C1189   #error:  -- unsupported Microsoft Visual Studio version! 
 Only the versions 2012, 2013, 2015 and 2017 are supported! ver2    
c:\program files\nvidia gpu computing 
toolkit\cuda\v9.0\include\crt\host_config.h 133 

其他错误无关紧要,一旦我解决了这个错误就会消失。请注意,我能够从CUDA样本构建并运行simpleCUFFT。

在更新之前,我能够构建默认的CUDA项目,但是我无法构建CUDA Sample项目。我使用VS安装程序更新了我的VS2017并安装了CUDA SDK 10.0.15063.0。附件是带有已安装组件的屏幕截图screenshot

如果需要任何其他信息,请与我们联系。我知道following主题,因为我使用的是最新的CUDA工具包,所以我不需要在host_config.h中进行更改。

谢谢, 米哈伊尔

编辑: 我的VS版本(在VS安装程序中显示)是15.5.0 我的nvcc版本是9.0版,V9.0.176

Edit2:我试图将host_config.h第133行更改为:

  #if _MSC_VER < 1600 || _MSC_VER > 1912

此错误不再显示,但是,一堆错误&#34;表达式必须具有常量值&#34;显示在文件type_trails中。我不知道如何解决它。

4 个答案:

答案 0 :(得分:19)

经历了一段痛苦的时光后,我才得以解决问题。以下是有类似问题的人的答案:

1)确保您拥有VC ++ 2015.3 v140工具集(可以从Web或Visual Studio安装程序安装)

2)在项目属性(一般)中 - &gt;平台工具集选择Visual Studio 2015(v140)。

编辑(5/21/2018):我刚刚将Visual Studio 2017更新到最新版本15.7.1。从现在开始,我可以选择VS 2017 v141工具集,它运行正常。

答案 1 :(得分:2)

在VS更新15.4.3中,Microsoft将其CL编译器的版本号更新为14.12 (https://www.visualstudio.com/ru-ru/news/releasenotes/vs2017-relnotes#15.4.4

这就是CUDA 9.0.176拒绝编译的原因。 今天NVIDIA将CUDA更新到9.1.85,所以只需更新 只需将CUDA更新为9.1 https://developer.nvidia.com/cuda-downloads

答案 2 :(得分:2)

我正在使用CUDA 9.2和VS 2017(版本15.7.5)。只需修改host_config.h(通常在 C:\ Program Files \ NVIDIA GPU Computing Toolkit \ CUDA \ v9。* \ include \ crt下,即可在build的VS输出中找到)对我有用。

更改行

#if _MSC_VER < 1600 || _MSC_VER > 1913

#if _MSC_VER < 1600 || _MSC_VER > 1914

或类似的东西,基于cl.exe的版本

答案 3 :(得分:1)

对于正在阅读此问题的任何人,请在CUDA 10中进行更新。它可以直接使用。无需安装以前的编译器工具集以及其他答案中提到的类似工具。只需下载CUDA 10,安装并卸载以前的CUDA版本即可。然后创建一个新的CUDA 10项目并放置您的代码。它会工作。

如果遇到错误,请不要忘记在项目属性-> CUDA C / C ++->设备->代码生成中适当设置compute_xx,sm_xx