如何将 cuDNN 更新到较新版本?
Posted
技术标签:
【中文标题】如何将 cuDNN 更新到较新版本?【英文标题】:how do I update cuDNN to a newer version? 【发布时间】:2016-11-03 10:02:11 【问题描述】:cuDNN 安装手册说
所有平台
将 cuDNN 存档解压缩到您选择的目录,以下称为 . 然后按照以下特定于平台的说明进行操作。
Linux
CD 导出 LD_LIBRARY_PATH=`pwd`:$LD_LIBRARY_PATH
通过将 -I 添加到您的编译中来添加到您的构建和链接过程 行和 -L -lcudnn 到您的链接行。
似乎它只是将pwd
添加到LD_LIBRARY_PATH
,所以我想只需替换pwd
中的文件即可进行更新。
但好像没那么简单,因为我做了这件事后收到了 Theano 的投诉,说
cuDNN 版本太旧。更新到 v5,是 3007。
【问题讨论】:
【参考方案1】:-
将
cudnn.h
替换为dir/cuda/include/
删除dir/cuda/lib64/
中的旧库文件
将新库文件添加到dir/cuda/lib64/
【讨论】:
还要确保您的系统路径设置正确。【参考方案2】:我编写了一个脚本,可用于全新安装 cuDNN 版本或将现有 cuDNN 更改为旧/新版本。您可以从以下位置下载脚本:
https://github.com/dnzzcn/cuDNNv
这就是脚本的作用:
#!/bin/bash
rm -f /usr/include/cudnn.h
rm -f /usr/lib/x86_64-linux-gnu/*libcudnn*
rm -f /usr/local/cuda-*/lib64/*libcudnn*
cp -P packages/cudnn/include/cudnn.h /usr/include
cp -P packages/cudnn/lib64/libcudnn* /usr/lib/x86_64-linux-gnu/
chmod a+r /usr/lib/x86_64-linux-gnu/libcudnn*
rm -rf packages/cudnn
它会自动为您需要的版本执行安装操作。
【讨论】:
假设packages/
在您的CWD
中?还需要sudo
?
是的,packages 文件夹包含在存储库目录中。有一个 python 脚本可以调用上面的 bash 脚本来获取所需的 cuDNN 版本;虽然我不确定,但它应该可以在没有 sudo 的情况下工作。
你的应用程序显示它已经完成了事情,即使它还没有完成。
deadcode 可以在尝试安装 cuDNN 时检查终端输出吗?如果您看到有关权限的错误,请尝试使用 sudo 运行 cuDNNv。【参考方案3】:
这是一个老问题,但现在我们有了 conda。我们不再需要手动替换这些文件。 conda install cudnn
可以解决所有问题。
【讨论】:
这在conda环境中安装了cudnn
最新版本8.2.1.32
。但是,当我运行cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
时,它仍然显示版本7.5.1
。有没有cmets?
/usr/local/cuda/include/cudnn.h 不是 conda 安装的 cudnn 版本。 Conda 将 cudnn 安装到其本地路径,例如 /path/to/conda/envs/env_name/lib 。它通过更改二进制文件中的 rpath 来工作。看懂中文的可以看博文zhuanlan.zhihu.com/p/101027069。
如何安装特定主要版本的最新次要版本(例如 8.1)?以上是关于如何将 cuDNN 更新到较新版本?的主要内容,如果未能解决你的问题,请参考以下文章
如何将 SQL Server localDB 升级到较新版本?