在Visual Studio 2017中使用CUDA

b5buobof  于 2023-03-09  发布在  其他
关注(0)|答案(9)|浏览(387)

我正在尝试安装CUDA,但我收到一条消息说“没有找到支持的Visual Studio版本”。我认为这是因为我使用的是Visual Studio 2017(社区),而CUDA目前最高只支持Visual Studio 2015。不幸的是,微软不允许我在不支付订阅费的情况下下载旧版本的Visual Studio。
我是否有办法绕过VS 2017的兼容性问题,或者我是否可以不使用CUDA?

nom7f22z

nom7f22z1#

1.如果您要将CUDA 8.0Visual Studio 2017一起安装,则需要安装Visual Studio 2017的其他组件。
单击开始菜单并键入Visual Studio安装程序。打开Visual Studio安装程序
打开Individual components选项卡并选择VC++ 2015.3 v140 toolset
Compilers, build tools and runtimes下。

1.如果您没有安装.NET Framework 3.5,您还需要安装它。

打开经典控制面板,转到Programs and features
然后按Turn Windows features on or off。检查.NET框架3.5,然后按确定。

1.下载完整的CUDA toolkit发行版并将其解压到磁盘上的某个位置。
1.如果您没有安装CUDA toolkit,请立即安装。如果您只安装了Visual Studio 2017,请取消选中Visual Studio integration复选框。
现在您希望收到***"No supported version of the visual studio was found"***错误。
但是为了在Visual Studio 2017中成功构建Cuda工具包项目,您还需要遵循步骤5和6。
1.转到CUDAVisualStudioIntegration\extras\visual_studio_integration\MSBuildExtensions
文件夹中,请复制所有文件并将其粘贴到
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\v140\BuildCustomizations:

1.在最后一步中,您需要编辑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 blog

pzfprimi

pzfprimi2#

目前,微软似乎仍在提供VS2015 Update 2社区版,你必须加入“dev essentions”计划,但它似乎是免费的。
我最近能够从here下载安装程序。
更新:CUDA 9 RC昨天在www.example.com上developer.nvidia.com向注册开发者提供,并且支持VS 2017。

9q78igpj

9q78igpj3#

谢谢大家的帮助。我只是想补充这篇文章的最后一块拼图。CUDA v9.0 RC正在寻找VS2017识别为1910,但最新的更新实际上识别为1911。要修复打开.../CUDA/v9.0/include/crt/host_config. h并更改此行:
#if _MSC_VER < 1600 || _MSC_VER > 1910
改为:
#if _MSC_VER < 1600 || _MSC_VER > 1911
您可能还需要将以下内容添加到CMakeList:
list(APPEND CUDA_NVCC_FLAGS --cl-version=2017)

dohp0rv5

dohp0rv54#

对于看到后者的人来说。
首先,尝试只安装CUDA 10(CUDA工具包10.0)。
如果没有任何mods仍然不能工作,请确保您有尽可能多的VC++工具集,因为你看到在列表中。检查this video,停止在8:41和比较列表。
如果出于某种原因,您必须使用CUDA 9.0 - 9.2,则需要跨越一些障碍:

  • 对于cmd构建版本,设置vcvars_ver=14.11 -请参见此答案
  • 对于IDE生成,请将“平台工具集”(在项目属性-“常规”中)设置为
  • Visual Studio 2017(v141))或
  • Visual Studio 2015(第140版)

如果您有非常定制的基于cmd的构建,请查找#if _MSC_VER(在.../CUDA/.../include/crt/host_config.h中)并删除尾随的|| _MSC_VER > ...

lokaqttq

lokaqttq5#

为了在Windows shell中运行Cuda编译器nvcc,您需要执行以下操作
1.从VS 2017 -VC++ 2017 version 15.4 v.14.11 toolset的各个组件安装适当的工具集版本
1.按照"c:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat" x64 -vcvars_ver=14.11在Windows shell中运行
1.您可以从windows shell编译nvcc代码而不会出错

2lpgd968

2lpgd9686#

我在使用CUDA 9.1和VS 2017 Enterprise时遇到了同样的问题。
将VC++编译器更改为v140(而不是141)后,一切运行正常。
已经有标记

#if _MSC_VER < 1600 || _MSC_VER > 1911

但它不会停止显示错误。
不知道为什么,但试图在VS2015上运行它会导致关于V141没有安装的错误...所以由于一些扭曲的逻辑,我试图不使用V141安装的地方...一切正常!!
离开这里,因为它可能会帮助别人在相同的情况下.(虽然我真的不明白为什么,如何,何时,谁或什么的解决方案.

pcww981p

pcww981p7#

最新更新(截至2018年6月12日正确)最新Cuda版本为9.2,最新Visual Studio版本为2017.7无法配合使用。上述解决方案中提供的说明无法使用。以下是对我有效的说明:
1.卸载Visual Studio。
1.卸载Visual Studio安装程序
1.下载Visual Studio 2017.6(请注意,众所周知,Microsoft会更改链接和修订版本,恕不另行通知)https://learn.microsoft.com/en-us/visualstudio/productinfo/installing-an-earlier-release-of-vs2017
1.启动安装程序
1.转到“单个组件”。单击Windows 10 SDK 10.0.15063 enter image description here
1.从官方网站下载cuda工具包:https://developer.nvidia.com/cuda-downloads?target_os=Windows&target_arch=x86_64&target_version=10&target_type=exelocal
1.您可能需要下载修补程序。

xesrikrc

xesrikrc8#

我想使用文本编辑器编辑CUDA程序(iIndieSublime)并从命令提示符编译它们但我遇到了nvcc编译器错误,我用Windows 10 OS安装了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

希望这有帮助!

mfpqipee

mfpqipee9#

只是更新。我的兼容性是:

  • Cuda版本11.2
  • Visual Studio社区2019

相关问题