Win10环境下paddlepaddle安装踩坑实录

写在前面

本问题于 2021-07-08 解决,后续的版本可能出现新的变化,请慎重参考。

问题描述与心路历程

根据百度paddlepaddle官网的下载方式一通操作。
结果到最终验证了,一个paddle.utils.run_check()下去,直接报错:

Running verify PaddlePaddle program ...
W0708 22:16:42.470225  3684 device_context.cc:404] Please NOTE: device: 0, GPU Compute Capability: 6.1, Driver API Version: 11.0, Runtime API Version: 11.0
W0708 22:16:42.471462  3684 dynamic_loader.cc:238] Note: [Recommend] copy cudnn into CUDA installation directory.
 For instance, download cudnn-10.0-windows10-x64-v7.6.5.32.zip from NVIDIA's official website,
then, unzip it and copy it into C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0
You should do this according to your CUDA installation directory and CUDNN version.
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "X:\...\Python\Python37\lib\site-packages\paddle\utils\install_check.py", line 196, in run_check...
    [fetch_var_name])
RuntimeError: (PreconditionNotMet) The third-party dynamic library (cudnn64_8.dll) that Paddle depends on is not configured correctly. (error code is 126)
  Suggestions:
  1. Check if the third-party dynamic library (e.g. CUDA, CUDNN) is installed correctly and its version is matched with paddlepaddle you installed.
  2. Configure third-party dynamic library environment variables as follows:
  - Linux: set LD_LIBRARY_PATH by `export LD_LIBRARY_PATH=...`
  - Windows: set PATH by `set PATH=XXX; (at C:\home\workspace\Paddle_release2\paddle\fluid\platform\dynload\dynamic_loader.cc:265)

咋个都是英文,直接复制黏贴问了度娘,结果也没找到特别好的解决方法。
俺寻思着我英语四级也过了呀,不如静下心看看啥意思,就有了如下翻译:

开始运行Paddle飞桨验证程序…
警告 具体时间 device_context.cc(设备上下文)文件:第404行] 请注意: 设备号: 0, GPU 算力: 6.1, 驱动 API 版本: 11.0, 运行时 API 版本: 11.0
警告 具体时间 dynamic_loader.cc(动态库加载)文件:第238行] 注: [推荐] 将cudnn的相关文件拷贝到CUDA目录下。
例如, 从NVIDIA官网下载了 cudnn-10.0-windows10-x64-v7.6.5.32.zip 后,
解压并复制当中的文件到 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0 目录下。
错误溯源 (最后一次回溯):
  File "<stdin>", line 1, in <module>
  File "X:\...\Python\Python37\lib\site-packages\paddle\utils\install_check.py", line 196, in run_check...
    [fetch_var_name])
请根据您的CUDA版本以及CUDNN版本来进行具体的操作。
RuntimeError:(先决条件未满足)Paddle飞桨所依赖的第三方动态库(cudnn64_8.dll)尚未配置成功。(错误码126)
  建议:
  1. 请检查您所安装的第三方动态链接库(例如CUDA、CUDNN)是否已经正确安装,并检查其版本是否与你所安装的paddlepaddle-gpu所支持的CUDA版本相符。
  2. 请将第三方动态链接库配置进环境变量中,方法如:
  - Linux系统:通过命令行语句`export LD_LIBRARY_PATH=...`来设置环境变量LD_LIBRARY_PATH
  - Windows系统:通过命令行语句`set PATH=XXX;`可以设置环境变量PATH(该错误提示来源于C:\home\workspace\Paddle_release2\paddle\fluid\platform\dynload\dynamic_loader.cc(动态库加载)文件:第265行)

CUDA没安装?不可能啊?我记得我之前装pyTorch的时候有查过CUDA版本应该没有问题啊?
这个CUDNN又是什么东西?

在一阵猛烈的搜索之后,我发现:
我CUDA、CUDNN 都! 没! 装!

(结果就是,花了我至少 2.46GB(不包括安装包)左右的硬盘空间把它们都装上了。
所以AI Studio每周48小时还是香啊,至少环境不用装[微笑]。
顺便建议把 Note: [Recommend] 改成 Note: [Required]

简单来说,就是之前在pyTorch安装的时候看到的CUDA是显卡预装的驱动运行时,也就是玩游戏用的,并不是开发者用的API。
其显著特征就是,你能不能在电脑里找到C:\Program Files\NVIDIA GPU Computing Toolkit路径,而不是只有C:\Program Files\NVIDIA Corporation路径。如果你有前面那个,那你就基本可以跳过CUDA的安装了;如果没有,来,看下一步。

CUDA 的安装

一般是选用直接去官网下载的方式1
而且这里建议使用exe (network)版进行安装,毕竟,它相对比较小巧。
但又由于飞桨官方2说:

Windows 7/8/10 支持 CUDA 10.1/10.2/11.0/11.2 单卡模式

所以我还是建议从历史版本页索引后下载。
历史版本页点击下载
下面是常见的几个network版安装包,点击即可下载:

版本 官网链接(估计大小)
CUDA 10.1.105 点击下载(18.23MB)
CUDA 10.2.89 点击下载(19.20MB)
CUDA 11.0.2 点击下载(56.39MB)
CUDA 11.2.0 点击下载(57.72MB)

注意:以上链接可能随时间变化而无法下载!截至 2021-08 仍可使用。

而具体能装哪个版本的CUDA,得看电脑N卡驱动的版本(如下图,控制面板 - 搜索 - NVIDIA控制面版 - 帮助(H) - 系统信息(I)
显卡驱动版本的查看

如安装 CUDA 10.1 的驱动版本必须 >= 418.96,有下表作为参考:3

CUDA 10.1 (10.1.105 general release, and updates)

驱动版本 >= 418.96

CUDA 10.2.89

驱动版本 >= 441.22

CUDA 11.0.2 GA

驱动版本 >= 451.48

CUDA 11.2.0 GA

驱动版本 >= 460.82

则可以由上图的例子得出,这台电脑目前最高可以装 CUDA 11.0.2。

下好安装包之后,会让你选个安装包解压位置,一般按默认的就好,除非C盘空间紧张,解压的内容在重启后是会自动清除的,一般问题不大:
安装包解压位置选择然后跟着它的步骤无脑下一步基本就没问题了,但必须要记住你CUDA的安装路径,在下一步有用,另外还有啥问题可以评论区讨论一下。

cuDNN 的安装

这个有一些麻烦,但是问题也不大,可以先从官网找到它
NVIDIA cuDNN的位置
点击下载发现居然需要会员资格!
会员资格下载
那问题也不大,注册个会员的问题,就我目前看来还是免费的,只有一个要填公司的空可能会拦住一些学生党,但是问题不大,自己杜撰一个貌似也是通过的。

登录开发者账号后,回到cuDNN的下载页,点击I Agree后,就可以下载了。
选择for CUDA 10.2下载这里我们选择 for CUDA 10.2 的版本(因为飞桨目前没有支持到CUDA 11.42,所以都选择下位安装包)

安装包内容大致如下:
cuDNN内容
我们要做的事是,把压缩包中cuda文件夹下的所有内容与之前 CUDA的安装路径(一般为C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0(此处为具体版本号,自行更改)1合并(也就是直接 复制粘贴/解压 过去,过程应该是不会报错的,都是新东西),最后大概会变成这样:
CUDA安装路径下装了cuDNN的样子

添加PATH环境变量

使用组合键 win+pause 或者对 此电脑 图标右键 - 属性唤出 系统属性 对话框,然后按照如下操作添加PATH环境变量:
添加环境变量如果您是默认路径,那一般在6(非必要)、7两步里填入C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0(此处为具体版本号,自行更改)\bin
如果是自定义的,请填入自定义的路径,就比如图中所示的F:\NVIDIA\bin
*注:路径一定要写到bin这个文件夹路径下,不然还出之前的bug。。

验证测试

在python中测试如下代码:

>>> import paddle
>>> paddle.utils.run_check()

这两句下去,就应该出现:

Running verify PaddlePaddle program ...
W...] Please NOTE: device: 0, GPU Compute Capability: 6.1, Driver API Version: 11.0, Runtime API Version: 11.0
W...] device: 0, cuDNN Version: 8.2.
PaddlePaddle works well on 1 GPU.
PaddlePaddle works well on 1 GPUs.
PaddlePaddle is installed successfully! Let's start deep learning with PaddlePaddle now.

翻译一下就是:

开始飞桨验证程序 ...
警告...] 请注意: 检测到0号设备, GPU算力: 6.1, CUDA驱动API版本号: 11.0, 运行时API版本: 11.0
警告...] 检测到0号设备, cuDNN版本号: 8.2.
飞桨在 1 个 GPU上运行良好.
飞桨在 1 个 GPUs上运行良好.
飞桨安装成功! 现在,让我们开始使用飞桨进行深度学习吧.

官方说明在GPU算力高于5.0时,此计算机可以用来跑神经网络。4
我这里是6.1,那就可以开心地烧显卡了!

参考资料


  1. Windows 10下安装CUDA、cuDNN以及 paddlepaddle_huyongchao98 ↩︎ ↩︎

  2. 安装指南_PaddlePaddle深度学习平台 ↩︎ ↩︎

  3. NVIDIA CUDA Toolkit Release Notes – Table 3_NVIDIA Developer Zone ↩︎

  4. NVIDIA英伟达GPU显卡算力一览(包含Tesla和GeForce、TITAN及RTX系列等)_程序员大本营 ↩︎

来源:学渣戊

物联沃分享整理
物联沃-IOTWORD物联网 » Win10环境下paddlepaddle安装踩坑实录

发表评论