Window 10 tensorflow 2.1 CUDA配置(cuda toolkit安装失败解决)

最近的project数据量都比较顶,只用cpu训练太折磨了,于是想exploit一下平时都没怎么做过功的GTX 1050。在配置过程中遇到不少问题,可能因为我遇到的问题比较独特,查了许多博客也没有完整流程,最后东拼西凑终于是解决了,于是想记录一下与大家分享,以供出现相同问题的朋友们参考。文章的目标是为tensorflow 2.1-gpu版本配置cuda,让训练能在GPU上运行。我是配v11.3的CUDA死活配不上,最后换成v10.1的CUDA了。如果是一定要求v11.3或其它版本的小伙伴,这篇文章对你可能没有什么帮助,如果只是单纯想用上GPU,就还是有参考价值的。

配置CUDA前相关的环境信息

  1. Windows 10系统
  2. 显卡GeForce GTX 1050
  3. 通过pip安装的tensorflow-gpu 2.1.0

虽然安装的是gpu版本,但这时运行tensorflow会有警告没有检测到cuda和一些dll文件missing。这时检查一下自己的电脑中是否有NVIDIA GPU Computing Toolkit这个文件夹。它一般情况下路径是C:\Program Files\NVIDIA GPU Computing Toolkit。如果没有我们需要下载CUDA的toolkits,可以从NVIDIA官方网站下载。

CUDA toolkit v11.3安装失败的解决方式

但这里我遇到了第一个麻烦。网页搜索NVIDIA toolkit,点进最显眼的官方页面,里边只默认提供了最新版本的toolkit(我下载时是v11.3)。下载v11.3后我的安装总是失败,失败点为Nsnight visual studio edition失败。网上大多数解答是:

  1. 选择自定义安装,不点选Visual Studio Integration
  2. 下载一个DDU的软件,把之前的显卡驱动啥的全清干净再重新安装
  3. 针对失败项,从NVIDIA官网单独下载安装

前两种方法我都进行了尝试,无法解决。第一种方法无法解决是因为我并不是visual studio integration失败了。第二种方法比较麻烦,得下载,转换安全模式,清除之前全部的显卡驱动之后重装,但同样不行,还是挂在Nsnight visual studio edition。

最终我的解决方法是放弃官方页面锁死推荐的v11.3,换成下载v10.1。其实所有的历史版本官方都有,在https://developer.nvidia.com/cuda-toolkit-archive,找到v10.1下载就行。(我下的是没有update的,以及在toolkit的推荐网页居然只锁死最新版的下载感觉有点坑)

之后就是具体的下载选择,选择符合自己配置的就好。我选择了local的安装包,之后便是下载安装。

接下来遇到一个小问题: v10.1的CUDA终于在Visual Studio Integration也挂了一次,就按照网上的经验选择自定义取消对它的勾选就好。

图形驱动程序安装失败的解决方式

然而之后我又很快的遇到了第二个问题: 图形驱动程序安装失败。这估计是之前尝试DDU解决方法后把显卡驱动全删了,然后安装程序中的版本不一致导致的。解决方法是自己先单独安装图形驱动。可以搜索NVIDIA驱动程序,或直接点右边的链接https://www.nvidia.cn/Download/index.aspx?lang=cn选择与自己显卡型号匹配的版本。我的GeForce GTX 1050是在GeForce下的GeForce 10 series。使用需求我选择了game ready的需求。(唉,我这原本已经装过了,之前试DDU方法又给全删了…)。下载完安装。这个单独安装应该没有什么问题。

这时候在重新打开CUDA toolkit的安装程序,同样取消Visual Studio Integration的勾选,之后安装就没有错误,能成功装上了。(实际上GeForce Experiment这些选项应该是可以不用选的,只勾选CUDA就可以满足gpu使用了)。

缺少cudnn64_7.dll的解决方式

成功安装后我以为能够成功使用了,import tensorflow也是一路successful。但最后还是有一个warning,导致GPU调用失败
Could not load dynamic library ‘cudnn64_7.dll‘; dlerror cudnn64_7.dll not found
这个解决方法是从网上下载v10.1版本cuda对应的cudnn64_7.ddl(这个文件可以搜索下载,CSDN的下载里边也有大佬们提供了资源,但是下载资源要收费,我也就不好随便公开出来,有需要可私信)然后放进.\NVIDIA GPU Computing Toolkit\CUDA\v10.1\bin中。默认情况的绝对路径是C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\bin
这之后可以通过

import tensorflow as tf
print(tf.__version__)
print(tf.test.is_gpu_available())

进行测试,只要一路successful,最后输出True就说明成功了。

引用

最后解决缺失.dll的方法和测试用的代码是从下面这个博客中学到的。
[1]: https://blog.csdn.net/qq_43203949/article/details/108550960

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值