最近电脑更新了一下配置,因此需要重新配置一下开发环境。在安装CUDA9.2的过程中碰到了一些坑,现在记录下来省的以后遇到又麻烦半天。
win10 64位操作系统 + visual studio 2017 +2080ti显卡
vs2017是从官网上安装的最新版,版本号是15.839。正因为是最新版才会有一些不兼容的问题,不过都顺利解决了。
2080ti显卡支持CUDA10,不过因为版本太高兼容不好就选了CUDA9.2。
CUDA9.2的下载地址:https://developer.nvidia.com/cuda-92-download-archive
将地址中的92换成其他数字就能下载其他版本的CUDA,比如换成90,就能下载CUDA9.0。
CUDA9.2下载完成后,双击下载好的exe文件会提示你解压的路径。
自行选择路径解压,解压完成后会自动检测你的电脑能不能安装。如果没什么问题就会让你选择安装的模式、安装的路径等。
我在有的博客中看到安装路径选择自定义,然后把 visual studio integration选项去掉。有的博客在安装完成后还要手动添加什么环境变量。
我安装的过程没管那么多,什么都没改,全部是默认。
cuDNN的下载地址在这:https://developer.nvidia.com/rdp/cudnn-archive
选择一个适合CUDA9.2的版本,我选的是
下载完成后进行解压,得到三个文件夹。
然后找到CUDA的安装路径,默认安装路径是 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.2。该路径下也有上边的三个文件夹。
将cuDNN下三个文件夹中的文件分别复制到CUDA下对应的三个文件夹中即可。
安装完成后要看看是否安装成功。测试方法主要有一下几种:
1. 按win+r,然后输入cmd回车。在命令行内输入nvcc -V,然后回车,出现下面的情况说明安装成功了。
但是,安装成功未必能用。
2. 打开CUDA自带的Samples文件夹,默认路径是:C:\ProgramData\NVIDIA Corporation\CUDA Samples\v9.2。文件夹中有一些工程例子,如果这些例子能运行成功就说明安装的CUDA能用,不过没必要全都试。以1_Utilities子文件夹下的bandwidthTest工程为例来说明我遇到的几个问题。
这个工程下有下面一些文件,
问题一:打开vs2017的版本,生成解决方案时会提示:
error MSB8036: 找不到 Windows SDK 版本10.0.15063.0。请安装所需的版本的 Windows SDK 或者在项目属性页中或通过右键单击解决方案并选择“重定解决方案目标”来更改 SDK 版本。
这是由于不兼容引起的,有两种解决方法:
方法一、用Notepad++打开bandwidthTest_vs2017.vcxproj文件,打开后找到下图中所在的位置
将10.0.15063.0替换成自己的vs2017的版本号,我这里已经替换过了,版本号可以在其他工程的.vcxproj文件中查看。
方法二、打开visual studio Installer软件对vs2017进行修改,在单个组件中找到Windows 10 SDK (10.0.15063.0)进行安装,如下图。
解决这个问题后继续生成就遇到了第二个问题:
error C1189: #error: -- unsupported Microsoft Visual Studio version! Only the versions 2012, 2013, 2015 and 2017 are supported!
该错误指向 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.2\include\crt\host_config.h文件的第133行
可以看到还是版本的问题。我的vs2017是15.8.9版本的。从下图可以看到15.8.9版本对应的_MSC_VER是1915,因此将133行中的1913改成大于1915的数即可。建议使用notepad++改。
修改之后再进行生成就可以了通过了
然后找到生成的bandwidthTest.exe,再控制台里运行如果得到下面的结果就说明运行成功了。
之后再生成别的工程就没什么问题了,比如运行deviceQuery.exe
https://blog.csdn.net/hollyholly5/article/details/53390719
https://blog.csdn.net/u010953266/article/details/80589241
https://blog.csdn.net/weixin_42359147/article/details/80622306