win10安装cuda与cudnn相关问题
在入坑tensorflow之后突然发现自己的弱鸡笔记本竟然有一张独显N卡(Geforce 930MX),于是忍耐不住就想使用gpu加速。这两天踩了很多坑,最终才跑通,在这里mark一下流程。
安装流程
- 安装cuda;
- 安装cudnn;
- 安装tensorflow-gpu(如果已经安装了tensorflow,先卸载)。
安装cuda
安装流程
可以自己看一下官方教程,比较详细:cuda安装官方教程 。
- 检查自己显卡是否符合要求,点这里(自己显卡版本可以在“控制面板->设备管理器->显示适配器”中查看);
- 下载cuda安装工具包,下载链接(建议下载local版,网络版如果安装失败每次都需要重新下载安装文件);
- 打开下载的文件,根据提示安装(建议默认安装目录)。
安装问题
Visual Studio(VS) Intergration安装失败
这是最常见的一种安装失败的原因。感觉一切跟vs相关的环境配置都有毒。
简单解决办法
最简单解决办法是选择自定义安装,不选择Visual Studio(VS) Intergration的安装。理论上来说这个部件用于跟vs集成,如果不需要使用vs开发,应该不装也没有问题(我没有试过)。但是无法运行官方给的测试示例程序,因为这些示例程序需要vs编译。
完整解决办法
参见链接完整解决办法。我按照链接里的步骤走,vs里面仍然不能新建cuda项目,但是确实可以编译运行了。
测试安装
测试步骤
- 打开命令行,输入
nvcc -V
,应该可以看见cuda版本信息; - 进入目录
C:\ProgramData\NVIDIA Corporation\CUDA Samples\v10.0\1_Utilities
,这是默认安装目录,如果自定义目录自己找到就行; - 分别将里面的deviceQuery项目与bandwidthTest项目用vs打开,并编译运行,如果运行成功则安装成功。
可能出现问题windowscudaGetDeviceCount returned 30 -> unknown error Result = FAIL
这是在跑deviceQuery示例时的问题。
这个问题很少见,我在网上基本没有找到解决方案,零星的一点相关信息也都是linux系统的。最后我终于发现这是驱动的问题。只需要打开Geforce Experience安装自己显卡的驱动,然后就可以成功跑通示例程序啦。
因为我是Geforce系列的显卡,其他系列可能不一样,但是应该都是只要装上驱动就可以了。
安装cudnn
参考官方教程。
- 下载cudnn,下载链接;
- 下载后解压,将目录下的文件复制到
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0
对应目录下(这是默认安装目录,自定义目录的找到自己的目录即可)。
安装tensorflow-gpu
使用命令即可:
pip install tensorflow-gpu
也可以在github上下载后安装,命令格式如下(不同版本具体内容不同):
pip install tensorflow_gpu-1.12.0-cp36-cp36m-win_amd64.whl
安装完成后在命令行中打开python,输入以下指令查看设备:
from tensorflow.python.client import device_lib
print(device_lib.list_local_devices())
出现下图类似结果就成功啦: