我想用CUDA开发一个程序,但我在NVidia's site的安装说明中迷路了。
所以这就是我所拥有的:
在this webpage上,我发现我的GPU启用了CUDA(好消息),带有“Compute capability”3.0。这是什么意思?
我知道CUDA版本对使用的Visual Studio版本很敏感,所以我的问题很简单:
据我所知,目前没有任何版本的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 Installer中选择了VC++ 2015.3 v14.00 (v140) toolset for desktop
包:
然后,您可以在“项目属性”>“常规”中切换要用于每个项目的工具集:
不幸的是,我最近遇到了一些问题,将使用VS 2015构建的二进制文件链接到使用VS 2017 15.8编译器构建的二进制文件,因此该路径可能不再起作用(似乎与新的“Just My Code Debugging”功能相关)。但是,编译器版本之间的二进制兼容性从来就不是真正依赖的东西......
另一个解决方案是downgrade your Visual Studio到15.6。
设备的计算能力基本上可以告诉您正在处理的GPU架构的哪一代以及您可以依赖的功能。或者用CUDA Programming Guide的话说:
设备的计算能力由版本号表示,有时也称为“SM版本”。此版本号标识GPU硬件支持的功能,并由运行时的应用程序用于确定当前GPU上可用的硬件功能和/或指令。
可以找到关于个体计算能力/体系结构的更多细节,例如here。