Windows下卸载重装CUDA和CUDnn_解决pycharm无法加载CUDA动态库的问题

写在前面

As we all know,配置深度学习环境时,CUDA、CUDnn、tensorflow、pytorch等涉及到版本匹配问题。如果不匹配,就会出现各种报错。

通常在匹配版本时有两种思路

  1. 根据本机的CUDA和CUDnn匹配合适版本的TensorFlow、pytorch
  2. 根据要用到的TensorFlow、pytorch匹配合适版本的CUDA和CUDnn
  • 大多数情况下我们会按照思路1去进行环境配置(毕竟装CUDA和CUDnn不容易啊)。

  • 但有的时候,当我们复现代码时,代码是用特定版本的TensorFlow、pytorch写的,如果我们安装的TensorFlow、pytorch版本不对,可能要涉及到大改代码。而由于某些代码API实在差太多,不同版本的TensorFlow没法做“平替”(没法改),那就只能采取思路2去配置环境了。

本文中,笔者就属于思路2。介绍了笔者在跑训练的时候,由于要用tensorflow-gpu==2.6.0,经过查询资料,需要匹配11.2版本的CUDA。所以介绍了CUDA和CUDnn的卸载重装方法。


正文开始

注:

  1. 查看本机已安装的CUDA版本的命令行指令:nvcc -V
  2. 查看本机显卡最高支持的CUDA版本的命令行指令:nvidia-smi
    也可以直接打开nvidia控制面板→帮助→系统信息→组件,就可以看到了:
    请添加图片描述
    在这里插入图片描述
    可以看到笔者的显卡驱动是最高支持CUDA11.5版本,所以完全可以支持CUDA11.2

BUT❗️ 笔者电脑已经安装了10.2版本的CUDA,因此需要把现有版本的CUDA卸载,然后重新安装CUDACUDnn

step1. 卸载CUDA

  1. 打开控制面板→程序→程序卸载
  2. 卸载与CUDA10.2版本相关的四个程序:
    NVIDIA CUDA Samples 10.2
    NVIDIA CUDA Runtime 10.2
    NVIDIA CUDA Documentation 10.2
    nvidia cuda dEVELOPMENT 10.2

参考:windows下CUDA的卸载以及安装
注:笔者只参考了本文中的卸载部分。

step2. 安装CUDACUDnn

笔者安装的是CUDA11.2.0版本的CUDA,以及相应版本的CUDnn(官网上Windows系统且CUDA是11.x版本的只对应一个CUDnn,下载它就好啦)

参考:CUDA和CUDNN的安装(带有详细步骤)

注:安装完成后,用nvcc -V测试是否安装好时,一定要重启命令行!一定要重启命令行!一定要重启命令行!

  • 不要在“安装之前就已经打开的命令行窗口”中输入命令,否则你会遇到nvcc不是内部操作的迷之错误中而自我怀疑。

  • 当你重新打开命令行,再次输入,就会发现,其实已经安装成功啦!
    在这里插入图片描述
    📗Debug经验+1:重启可以解决很多奇怪的问题😆。

step3. Tensorflow-gpu安装

这个帖子中可以找到对应版本的TensorFlow:2021最新:TensorFlow各个GPU版本CUDA和cuDNN对应版本整理(最简洁)

由于笔者已经确定要用tensorflow-gpu==2.6.0,因此在对应的虚拟环境中安装:

pip install tensorflow-gpu==2.6.0 --default-timeout=100 -i https://pypi.tuna.tsinghua.edu.cn/simple

通过更换清华源,可以更快地下载,避免报错。

安装完成后,检查是否安装成功(即:检查TensorFlow是否可以用gpu了)

python
import tensorflow as tf
tf.config.list_physical_devices('GPU')

在这里插入图片描述

📗Debug经验:不要同时安装tensorflow(CPU版本)和tensorflow-gpu(GPU版本),否则,会出现各种错误。

安装完成,GPU可以用了,cmd中执行正常,but pycharm❓

(1)报错分析

💢pycharm,你怎么回事?

运行代码时,报错Could not load dynamic library ‘...dll‘,一连报一大串,属实难受哇,这个报错让笔者困扰了好久。你如果去搜索,几乎会看到的大部分解决思路无外乎两种:

  • 错误思路一:缺啥补啥
    绝大部分帖子都在用缺啥补啥的思路告诉你怎么去下载丢失的包。

📝笔者的解答:

如果你属于:无法使用gpu,即CUDACUDnn没有安装成功,那应该参考笔者前面提到的步骤,去好好下载并安装CUDA和CUDnn!(😢I know the installation process will be difficult!)
注意:在CUDnn的安装步骤中,涉及到替换CUDA的bin目录,而我们需要的各种dll文件就是在这一步被安装的。

但是!如果你的CUDACUDnn已经安装好了,也分两种情况:

  1. CUDA版本不匹配导致的报错:你安装的是CUDA10.X,而报错缺失的动态包是关于CUDA11.x的,意思是:你安装的是CUDA10.x版本,而该代码要求的环境是CUDA11.X。那么你就应该卸载重装CUDA和CUDnn(可以参考上方写出的step1~3)。

    单纯靠缺啥补啥逃避卸载是没用的😢,伙计!因为笔者是过来人,尝试过这种蠢办法。

  2. 如果CUDA版本没有问题,是完全不用去补.ddl文件的。

    你可以去安装好的CUDAbin目录,看看是否这些包都已经存在。如果存在,说明你没错。

    如果你用cmd在命令行中可以正确使用gpu,那就说明你的操作没问题。这是pycharm自身的锅:它没有能够链接到CUDAbin路径下

  • 错误思路二:掩耳盗铃🙈

    一些帖子教你如何通过设置指令,从而忽略警告。

📝笔者的解答:

笔者看来,这个警告等同于报错,因为它会影响程序能否正常执行)。所以不要尝试去忽略警告,这么做治标不治本,依旧会存在各种错误。

良好的正确的环境是成功之基!配置环境这部分重视起来了,代码就成功一半了!千万要好好配置!否则,你会遇到特别特别多奇怪的bug。

(2)报错解决

📝翻阅大量资料,读到Anaconda虚拟环境下的PyCharm使用Tensorflow调用GPU出现dll文件缺失的问题和解决办法时,笔者看到了希望👍!这篇文章准确地 (ma)出了笔者的心声,也为笔者指出了最终解除报错的方法。最终参考的也正是文中作者所参考的帖子:PyCharm DLL load failed的原因和对治方法

例如:笔者根据自己电脑的情况,打开anaconda prompt→输入start+pycharm.exe所在路径:start C:\"Program Files"\"NVIDIA GPU Computing Toolkit"\CUDA\v11.2\bin\pycharm64.exe。再次打开就不会出现这个报错了。


晚安~

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值