如何将 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 升级到较新版本?

将 grafana 迁移到较新版本的最佳方法是啥? [关闭]

Caffe使用新版本CUDA和CuDNN

KMPlayer 新版本右侧弹窗如何关闭

在有新版本可用时更新 ios 应用程序

更新了核心数据模型,没有新版本,如何修复?