Linux系统配置深度学习环境之cudnn安装

2023-12-05

前言

一个针对深度学习应用优化的 GPU 加速库。它提供了高性能、高可靠性的加速算法,旨在加速深度神经网络模型的训练和推理过程。

cuDNN 提供了一系列优化的基本算法和函数,包括卷积、池化、规范化、激活函数等,以及针对深度学习任务的高级功能,如循环神经网络(RNN)的支持。这些算法和函数充分利用了 NVIDIA GPU 的并行计算能力,提供了显著的性能加速。

cuDNN 不仅可以用于传统的深度学习框架(如 TensorFlow、PyTorch、Caffe 等),还可以与 NVIDIA 的深度学习库 TensorRT 集成,实现深度学习模型的端到端优化和部署。

使用 cuDNN 可以极大地提高深度学习训练和推理的速度和效率,减少模型的开发时间和运行成本。它广泛应用于各种领域的深度学习任务,如计算机视觉、自然语言处理、语音识别等。

需要注意的是,cuDNN 是一个专门针对 NVIDIA GPU 的加速库,因此只能在支持 CUDA 的 GPU 上进行使用。并且,cuDNN 需要与适当版本的 NVIDIA 显卡驱动和 CUDA 工具包一起安装和配置才能发挥最佳性能。

本篇文章单独讲解cudnn的安装,因为该方法适用于99%的Linux系统,在安装cudnn之前需要先安装cuda,cuda的安装请在Linux专栏查看我之前的文章。

cudnn安装

1、下载对应的cudnn版本

nvidia官网可以下载,但是需要进行注册登陆且下载非常的缓慢,可以在文章后进行下载。

从上图可以看到,有非常多的包,如何去下载自己需要的包呢?其中:

12.x        # 代表支持cuda12的任意版本

11.x        # 代表支持cuda11.0到11.8的任意版本

所以,只需要根据安装的cuda版本选择任意相应的版本即可。

2、以cudnn v8.8.1 for CUDA 11.x为例进行安装

下载tar.xz包后,使用tar命令进行解压

tar -xvf cudnn-linux-x86_64-8.8.1.3_cuda11-archive.tar.xz

解压后,进入解压后的目录:

cd cudnn-linux-x86_64-8.8.1.3_cuda11-archive

拷贝文件include和lib文件到cuda中:

cp  -P  cudnn-linux-x86_64-8.8.1.3_cuda11-archive/lib/*   /usr/local/cuda/lib64/

cp  -P  cudnn-linux-x86_64-8.8.1.3_cuda11-archive/include/*  /usr/local/cuda/include/

完毕!!!

到此,linux系统的cudnn就已经安装完成,安装很简单方便,唯一就是下载cudnn的包比较麻烦,这里提供目前8.8.0以上的所有tar.xz的安装包下载地址,如需其他版本的,请在评论区留言或私信我。

12.x的下载地址:

cudnn-linux-x86-64-8.9.0.131-cuda12-archive.tar.xz资源

cudnn-linux-x86-64-8.8.1.3-cuda12-archive.tar.xz资源

11.x的下载地址:

cudnn-linux-x86-64-8.9.0.131-cuda11-archive.tar.xz资源

cudnn-linux-x86-64-8.8.1.3-cuda11-archive.tar.xz资源

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux系统配置深度学习环境之cudnn安装 的相关文章

  • Linux >2.6.33:可以使用 sendfile() 来实现更快的“猫”吗?

    必须将大量大文件连接成一个更大的单个文件 我们目前使用 cat file1 file2 output file but are wondering whether it could be done faster than with that
  • 命名互斥体的 Mono 替代方案

    在 Windows NET 上 命名的互斥体可用于同步多个进程 不幸的是 Mono 在 Linux 上不太支持这一点 他们的发行说明 http www mono project com Release Notes Mono 2 8 Shar
  • 如何将命令输出作为多个参数传递给另一个命令

    我想将命令的每个输出作为多个参数传递给第二个命令 例如 grep pattern input returns file1 file2 file3 我想复制这些输出 例如 cp file1 file1 bac cp file2 file2 b
  • 用于 e NetworkManager VPN 连接的 dbus 信号处理程序

    我需要开发一些在建立 VPN 连接时执行的 python 代码 VPN 由 NetworkManager 控制 我试图弄清楚如何为此使用 NM DBUS 事件 使用 dbus monitor system 我能够识别连接信号 signal
  • EULA 接受 Bash 脚本

    我有一个尝试安装垃圾箱的脚本 除了 bin 在 more 中打开 EULA 之外 一切正常 在脚本再次开始并自行完成安装之前 您必须手动 ctrl c 退出此 more 实例 因为这更多的是逃离 shell 所以脚本在打开后不知道要运行什么
  • Linux 上的“软/硬 nofile”是什么意思

    当我尝试在RedHat EL5上安装软件时 我得到了错误 软 硬nofile的期望值是4096 而默认值是1024 我设法增加了这个数字 但我不知道参数是什么 他们指的是软链接和硬链接吗 我改变的方法是 a 修改 etc security
  • 在 Windows / Linux 中创建 Mac 包

    我自己努力制作一个 r 包 我按照 stackoverflow 中上一个问题的说明进行操作如何为外行开发软件包 http cran r project org bin windows Rtools 以下是我根据上一个问题采取的步骤 在新的
  • PHP mail() 函数不发送邮件

    我有一个小问题 我正在使用一个工作脚本 在我的测试帐户 共享服务器上工作 使用 mail 函数通过 PHP 发送邮件 我刚刚得到了一个专用服务器 但我还无法让该功能发挥作用 在过去的 10 个小时左右的时间里 我阅读了有关 BIND 用于
  • 如何在C程序中直接改变显存映射来绘制像素(无需库函数)

    是否可以通过使用 C 程序更改 RAM 中屏幕 视频即监视器 内存映射中的值来显示黑点 我不想使用任何库函数 因为我的主要目标是学习如何开发简单的操作系统 我尝试访问起始屏幕内存映射 即 0xA0000 在 C 中 我尝试运行该程序 但由于
  • 删除 Python 中某些操作的 root 权限

    在我的 Python 脚本中 我执行了一些需要 root 权限的操作 我还创建并写入文件 我不想由 root 独占所有 而是由运行我的脚本的用户独占所有 通常 我使用以下命令运行脚本sudo 有办法做到上述吗 您可以使用以下方式在 uid
  • sudo pip install python-Levenshtein 失败,错误代码 1

    我正在尝试在 Linux 上安装 python Levenshtein 库 但每当我尝试通过以下方式安装它时 sudo pip install python Levenshtein 我收到此错误 命令 usr bin python c 导入
  • PHP 日志文件颜色

    我正在编写一个 PHP 日志文件类 但我想为写入文件的行添加颜色 我遇到的问题是颜色也会改变终端的颜色 我想要实现的是仅更改写入日志文件的行的颜色 class logClass extends Singleton private funct
  • php56 - CentOS - Remi 仓库

    我刚刚在测试盒上安装了 php 5 6 正常的 cli php 解释器似乎不存在 gt php v bash php command not found gt php56 v PHP 5 6 13 cli built Sep 3 2015
  • 在bash中用其他文件过滤一个文件

    我有一个带有数字的文件 例如 cat file 31038467 32048169 33058564 34088662 35093964 31018168 31138061 31208369 31538163 31798862 和其他例如
  • 我们可以在 Bash 脚本中使用 PHP 吗?

    我有一个 bash 脚本abcd sh bin sh for i in seq 8 do ssh w i uptime ps elf grep httpd wc l free m mpstat done pid sleep 1 kill 9
  • 在Linux中将日期附加到文件名

    我想在文件名旁边添加日期 somefile txt 例如 somefile 25 11 2009 txt 或 somefile 25Nov2009 txt 或任何类似的内容 也许脚本或终端窗口中的某些命令可以执行 我正在使用Linux Ub
  • Linux mremap 不释放旧映射?

    我需要一种方法将页面从一个虚拟地址范围复制到另一个虚拟地址范围 而无需实际复制数据 范围很大 延迟很重要 mremap 可以做到这一点 但问题是它也会删除旧的映射 由于我需要在多线程环境中执行此操作 因此我需要旧映射能够同时使用 因此稍后当
  • 如何从命令行执行 PHP 代码?

    我想执行单个 PHP 语句 例如if function exists my func echo function exists 直接使用命令行 无需使用单独的 PHP 文件 这怎么可能 如果您要在命令行中执行 PHP 我建议您安装phpsh
  • 动态加载库和共享全局符号

    由于我在动态加载的库中观察到全局变量的一些奇怪行为 因此我编写了以下测试 首先我们需要一个静态链接库 头文件test hpp ifndef BASE HPP define BASE HPP include
  • 如何在树莓派上更新到最新的 python 3.5.1 版本?

    我昨天拿到了 Raspberry Pi 我已经在尝试用它来编写代码了 我有一个计划在其上运行的程序 但它仅与 Python 版本 3 5 0 或 3 5 1 兼容 并且我在互联网上找到的所有内容似乎都已经过时 与 Python 2 有关 或

随机推荐