代码之家  ›  专栏  ›  技术社区  ›  Pierre Baret

VS2017和GTX 870M的CUDA版本是什么?

  •  0
  • Pierre Baret  · 技术社区  · 6 年前

    我想用CUDA开发一个程序,但是我被安装说明弄糊涂了。 NVidia's site .

    所以我有:

    • 带Nvidia GPU Geforce GTX 870M的Windows 10笔记本电脑 (操作系统和GPU驱动程序都是最新的)
    • Visual Studio 2017,版本15.8(也是最新版本)_ms_ver=1915

    this webpage 我发现我的GPU支持CUDA(好消息),具有“计算能力”3.0。 这是什么意思?

    我知道CUDA版本对所使用的Visual Studio版本很敏感,所以 我的问题很简单:

    • 我应该下载并安装哪个版本的CUDA?我可以用我的Visual Studio版本构建和运行程序吗?
    1 回复  |  直到 6 年前
        1
  •  1
  •   Michael Kenzel    6 年前

    据我所知,目前没有任何版本的CUDA工具包支持Visual Studio 15.8。最新的CUDA 9.2据说最多支持Visual Studio 15.6。请注意,Visual Studio支持的问题实际上只涉及NVCC编译器和Visual Studio集成。没有什么能阻止你,例如,使用CUDA驱动程序API和任何你想要的编译器(包括最新版本的VS)。

    解决这些问题的一种方法是将CUDA代码放入单独的静态库中,使用vs 2015编译器构建该库,并将其链接到可以使用vs 2017构建的主项目。

    确保已在Visual Studio安装程序中选择桌面的 vc++2015.3 v14.00(v140)工具集 package:。

    然后,您可以在“项目属性”>“常规:”中切换要用于每个项目的工具集。

    不幸的是,我最近遇到了一些问题,将使用vs 2015构建的二进制文件链接到使用vs 2017 15.8编译器构建的二进制文件,因此路径可能不再工作(似乎与新的“仅我的代码调试”功能相关)。但是,编译器版本之间的二进制兼容性从一开始就不是真正需要依赖的东西。

    另一个解决方案是 将您的Visual Studio降级 至15.6.


    一个设备的计算能力基本上告诉你正在处理的GPU体系结构的生成以及你可以依赖的特性。或者用CUDA编程指南中的词

    < Buff行情>

    设备的计算能力由版本号表示,有时也称为“SM版本”。此版本号标识GPU硬件支持的功能,并由应用程序在运行时使用,以确定当前GPU上可用的硬件功能和/或说明。

    < /块引用>

    有关单个计算功能/体系结构的更多详细信息,请参见 here

    . 请注意,Visual Studio支持的问题实际上只涉及NVCC编译器和Visual Studio集成。没有什么能阻止你,例如,使用CUDA驱动程序API和任何你想要的编译器(包括最新版本的VS)。

    解决这些问题的一种方法是将CUDA代码放入单独的静态库中,使用VS 2015编译器构建该库,并将其链接到可以使用VS 2017构建的主项目。

    确保已选择 VC++ 2015.3 v14.00 (v140) toolset for desktop Visual Studio安装程序中的包:

    visual studio installer

    然后,您可以在“项目属性”>“常规”中切换要用于每个项目的工具集:

    enter image description here

    不幸的是,我最近遇到了一些问题,将使用vs 2015构建的二进制文件链接到使用vs 2017 15.8编译器构建的二进制文件,因此路径可能不再工作(似乎与新的“仅我的代码调试”功能相关)。但是,编译器版本之间的二进制兼容性从一开始就不是真正需要依赖的东西。

    另一个解决办法是 downgrade your Visual Studio 到15.6。


    一个设备的计算能力基本上告诉你正在处理的GPU体系结构的生成以及你可以依赖的特性。或者用 CUDA Programming Guide :

    设备的计算能力由版本号表示,有时也称为“SM版本”。此版本号标识GPU硬件支持的功能,并由应用程序在运行时用于确定当前GPU上可用的硬件功能和/或指令。

    可以找到有关单个计算能力/体系结构的更多详细信息,例如: here .