我正在尝试安装CUDA,但是收到了一条消息,提示“未找到支持的Visual Studio版本”。我认为这是因为我正在使用2017年版(社区版)的Visual Studio,而CUDA目前仅支持至Visual Studio 2015。不幸的是,微软不允许我下载旧版本的Visual Studio而不支付订阅费。
是否有办法解决VS 2017的兼容性问题,或者我不能使用CUDA?
我正在尝试安装CUDA,但是收到了一条消息,提示“未找到支持的Visual Studio版本”。我认为这是因为我正在使用2017年版(社区版)的Visual Studio,而CUDA目前仅支持至Visual Studio 2015。不幸的是,微软不允许我下载旧版本的Visual Studio而不支付订阅费。
是否有办法解决VS 2017的兼容性问题,或者我不能使用CUDA?
CUDA 8.0
并与 Visual Studio 2017
配合使用,则需要为 Visual Studio 2017 安装其他组件。Individual components
选项卡并在 Compilers, build tools and runtimes
下选择 VC++ 2015.3 v140 toolset
。
2. 如果您没有安装 .NET Framework 3.5
,您还需要安装它。Nvda.Build.CudaTasks.v8.0.dll
程序集 依赖于 MS .NET Framework 3.5。程序和功能
,打开或关闭Windows功能
。勾选 .NET Framework 3.5 并按 OK。
CUDA Toolkit
分发版并将其解压到磁盘上的某个位置。CUDA Toolkit
,请现在安装。如果您仅安装了Visual Studio 2017
,请取消选择Visual Studio integration
复选框。
现在您想要收到"No supported version of the visual studio was found"
错误。
但是为了成功地在Visual Studio 2017
中构建Cuda toolkit项目,您还需要按照步骤5和6进行操作。
CUDAVisualStudioIntegration\extras\visual_studio_integration\MSBuildExtensions
文件夹,复制所有文件并将它们粘贴到C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\v140\BuildCustomizations:
Cuda
项目,以识别来自Visual Studio 2017
的NVidia构建任务。在文本编辑器中打开您的.vcxproj
文件,并查找所有CUDA 8.0.props
的出现。将字符串开头的宏替换为$(VCTargetsPath14)
,以便XML片段如下所示:
<ImportGroup Label="ExtensionSettings"> <Import Project="$(VCTargetsPath14)\BuildCustomizations\CUDA 8.0.props" /></ImportGroup>
不要忘记编辑文件末尾的自定义目标路径:
<ImportGroup Label="ExtensionTargets"> <Import Project="$(VCTargetsPath14)\BuildCustomizations\CUDA 8.0.targets" /></ImportGroup>
请务必仔细检查您的路径配置!
如果您在命令提示符中使用nvcc
,可能不会从Visual Studio
文件夹中调用cl.exe
!
现在,您可以从Visual Studio 2017构建Cuda项目。
这个解决方案的部分内容来自Oleg Tarasov博客。
Visual Studio Integration
复选框。虽然它不能正常工作,但如果您不选择它,则上述提到的MSBuildExtensions
文件夹中的文件将无法下载。 - NauticalMileMSBuildExtensions
文件夹。 - snickers10m目前,微软似乎仍然提供VS2015 Update 2社区版。您需要加入“dev essentials”计划,但它似乎是免费的。
我最近能够从这里下载安装程序。
更新:昨天,CUDA 9 RC已经向注册开发人员提供,并且支持VS 2017。
#if _MSC_VER < 1600 || _MSC_VER > 1910
#if _MSC_VER < 1600 || _MSC_VER > 1911
您可能还需要将以下内容添加到CMakeLists中:
list(APPEND CUDA_NVCC_FLAGS --cl-version=2017)
针对看到这篇文章的人。
首先,尝试只安装CUDA 10(CUDA Toolkit 10.0)。
如果没有任何修改仍然无法正常工作,请确保您拥有与列表上看到的VC++工具集一样多的工具集。请查看此视频,在8:41处停下来并比较列表。
如果由于某种原因必须使用CUDA 9.0 - 9.2,则需要跳过一些步骤:
如果您有非常定制的基于cmd的构建,请查找#if _MSC_VER
(在.../CUDA/.../include/crt/host_config.h
中)并删除尾随的|| _MSC_VER > ...
nvcc
,您需要执行以下操作:
从 VS 2017 的个别组件中安装适当的工具集版本 - VC++ 2017 version 15.4 v.14.11 toolset
在 Windows shell 中运行以下命令:"c:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat" x64 -vcvars_ver=14.11
您可以在 Windows shell 中编译 nvcc
代码,而不会出现错误。
我想使用文本编辑器(如Sublime)编辑我的CUDA程序,并从命令提示符编译它们,但遇到了nvcc编译器错误。我安装了带有Windows 10操作系统的Visual Studio 2017,但在编译后,它说“只允许VS 2012、13、15和17版本”。所以我做的是从VS 2017安装程序的安装包中安装VC++ 2015工具包(请参阅顶部帖子的图像)。我没有完全按照他的过程进行,而是只将新创建的VS 14.0文件夹中的cl.exe文件路径复制到环境变量中。.exe文件可以在此处找到:
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin
最新更新(截至2018年6月12日),最新的Cuda版本为9.2,最新的Visual Studio版本为2017.7。但是请注意,它们不兼容。以上解决方案提供的指令无效。以下是成功解决问题的方法:
1. 卸载Visual Studio。 2. 卸载Visual Studio安装程序。 3. 下载Visual Studio 2017.6(请注意,微软可能会在没有通知的情况下更改链接和版本)https://learn.microsoft.com/en-us/visualstudio/productinfo/installing-an-earlier-release-of-vs2017 4. 启动安装程序。 5. 转到“各个组件”。单击“Windows 10 SDK 10.0.15063”enter image description here 6. 从官方网站下载cuda Toolkit:https://developer.nvidia.com/cuda-downloads?target_os=Windows&target_arch=x86_64&target_version=10&target_type=exelocal 7. 您可能需要下载补丁。我在使用CUDA 9.1和VS2017 Enterprise时遇到了相同的问题。
将VC++编译器更改为v140(而不是141)后,一切都正常运行。
已经有标志。
#if _MSC_VER < 1600 || _MSC_VER > 1911
但它仍然不停地显示错误。
不知道为什么,但是在尝试在VS2015上运行时会出现关于未安装v141的错误...所以由于某种扭曲的逻辑,我尝试在已安装v141的地方不使用它...然后一切都正常了!
将此留在这里,因为它可能会帮助处于相同情况的其他人。(虽然我真的不理解解决方案的原因、如何、何时、谁或什么。)
更新一下,我的兼容性如下: