AIGC | 在机器学习工作站安装NVIDIA cuDNN 深度学习库

08a6f55e62f938f9334386da72d53bdd.gif

[ 知识是人生的灯塔,只有不断学习,才能照亮前行的道路 ]


0x03.初识与安装 cuDNN 深度学习库

什么是cuDNN?

cuDNN(CUDA® Deep Neural Network library)是由英伟达(NVIDIA)开发的深度学习库,专门用于加速深度神经网络(DNN)的训练和推断过程,cuDNN 提供了高度优化的实现(如前向和后向卷积、attention、matmul、池化和归一化),利用 NVIDIA GPU 的并行计算能力来加速神经网络的运行。

主要功能和特性:

  • 卷积操作优化:cuDNN 实现了高度优化的卷积操作,包括常用的卷积、反卷积和池化等操作。这些优化能够显著加速卷积神经网络(CNN)的训练和推断过程。

  • RNN 和 LSTM 支持:cuDNN 提供了对循环神经网络(RNN)和长短期记忆网络(LSTM)等序列模型的优化支持,包括各种变体和层级。

  • 标准神经网络层优化:除了卷积和循环层,cuDNN 还优化了神经网络的标准层,如全连接层和激活函数(如ReLU)。

  • 高级特性支持:cuDNN 提供了一些高级特性,如半精度浮点计算(FP16)支持,这对于在保持高精度的同时显著提高训练和推断速度尤为重要。

  • 跨平台和接口支持:cuDNN 可以在多个操作系统上运行,并支持多种深度学习框架的接口,如 TensorFlowPyTorchCaffe 等,使得开发者可以利用其优化功能而无需深入底层编程。

总体来说,cuDNN 是在 NVIDIA GPU 上进行深度学习计算时不可或缺的库之一,通过提供高效的算法实现和并行计算优化,显著提高了深度神经网络训练和推断的速度和效率。

官网地址:https://developer.nvidia.com/cudnn


cuDNN 与 CUDA 有何关系?

cuDNN 是基于 CUDA 构建的,因此需要 CUDA 才能运行。CUDA 提供了 GPU 并行计算的底层基础,而 cuDNN 则提供了针对深度学习应用的优化库。

简单的说,CUDA看作是一个工作台,上面配有很多工具,如锤子、螺丝刀等。cuDNN是基于CUDA的深度学习GPU加速库,有了它才能在GPU上完成深度学习的计算。它就相当于工作的工具,比如它就是个扳手。但是CUDA这个工作台买来的时候,并没有送扳手。想要在CUDA上运行深度神经网络,就要安装cuDNN,就像你想要拧个螺帽就要把扳手买回来,这样才能使GPU进行深度神经网络的工作,工作速度相较CPU快很多。

前置条件:

在进行cuDNN安装之前,需要先安装 NVIDIA 显卡驱动程序及其适用于你当前系统的 CUDA 工具包,否则无法进行cuDNN的安装。


安装步骤: 

有两种安装cuDNN方法,使用特定于发行版的软件包(RPM 和 Debian 软件包)或独立于发行版的软件包(Tarballs)进行安装,此处作者建议尽可能使用特定于发行版的包。

Step 1.对于 Ubuntu 用户,还需安装 zlib 软件包,请运行:

sudo apt-get install zlib1g
# zlib1g 已经是最新版 (1:1.3.dfsg-3.1ubuntu2)。
# zlib1g 已设置为手动安装。

Step 2.访问 NVIDIA cuDNN 下载页面(developer.nvidia.com/cudnn),选择对应版本进行下载,如作者选择支持Ubuntu 24.04 的cuDNN,由于官网还没Ubuntu 24.04 此处使用22.04的来替代。

4fe43b899ae0ab3caf8e633dd7787fe5.png

weiyigeek.top-sudo apt-get install zlib1g图
# 下载特定于发行版的cuddn包
wget https://developer.download.nvidia.com/compute/cudnn/9.2.1/local_installers/cudnn-local-repo-ubuntu2204-9.2.1_1.0-1_amd64.deb# 解压并安装, 然后导入 CUDA GPG key
sudo dpkg -i cudnn-local-repo-ubuntu2204-9.2.1_1.0-1_amd64.deb
sudo cp /var/cudnn-local-repo-ubuntu2204-9.2.1/cudnn-*-keyring.gpg /usr/share/keyrings/# 更新源
sudo apt-get update# 老前辈则建议根据需要安装而不是完整的cudnn。
sudo apt-get -y install cudnn
# 将会同时安装下列软件:# cudnn9 cudnn9-cuda-12 cudnn9-cuda-12-5 libcudnn9-cuda-12 libcudnn9-dev-cuda-12 libcudnn9-samples libcudnn9-static-cuda-12# 若要安装CUDA 12特定的软件包,请执行
sudo apt-get -y install cudnn-cuda-12

008ea0e5d3d7143ea52595ed95096c3c.png

weiyigeek.top-安装cudnn图

温馨提示:若要下载 cudnn 历史版本,请访问 [developer.nvidia.cn/rdp/cudnn-archive] 下载页面,选择对应版本进行下载安装即可。

a2e0264556829f6eed0a1aed60c54ace.png

weiyigeek.top-下载 cudnn 历史版本图

Step 3.除此之外,我们也可以选择单独安装runtime library、developer library 和 code samples,分别对应于libcudnn9libcudnn9-devlibcudnn9-doc

## 1. Install the runtime library.
## sudo apt-get install libcudnn9=9.x.x.x-1+cudaX.Y
sudo apt-get install libcudnn9=9.2.1.18-1+cuda11.8
## 2. Install the developer library.
## sudo apt-get install libcudnn9-dev=9.x.x.x-1+cudaX.Y
sudo apt-get install libcudnn9-dev=9.2.1.18-1+cuda11.8
## 3. Install the code samples.
## sudo apt-get install libcudnn9-samples=9.x.x.x-1+cudaX.Y
sudo apt-get install libcudnn9-samples=9.2.1.18-1+cuda11.8

step 4.最后安装完毕后,使用sudo dpkg -l | grep cudnn命令验证是否安装成功。

0b36ee7a90ba42c5d568ac79be656601.png

weiyigeek.top-检查cudnn图

文章都看完了,都不关注一下作者吗?


如果此篇文章对你有帮助,请你将它转发给更多的人!

 学习推荐 往期文章

  • 🔥【最新】运维Tips | 当同时忘记Kylin麒麟系统root与grub密码如何应对?

  • 💡【相关】AIGC | 机器学习工作站安装Ubuntu24.04桌面版

  • 💡【相关】AIGC | Ubuntu24.04桌面版必备软件安装

96c88d0a3b3144e35be7e9808dbea15e.gif

850cebb6b4729a99903424ae507ae30e.gif

感觉文章不错的童鞋,请帮忙转发,点 👍、在看,若有疑问的小伙伴,可在评论区留言你想法哟💬!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/866448.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

昇思学习打卡-5-基于Mindspore实现BERT对话情绪识别

本章节学习一个基本实践–基于Mindspore实现BERT对话情绪识别 自然语言处理任务的应用很广泛,如预训练语言模型例如问答、自然语言推理、命名实体识别与文本分类、搜索引擎优化、机器翻译、语音识别与合成、情感分析、聊天机器人与虚拟助手、文本摘要与生成、信息抽…

LLMs之gpt_academic:gpt_academic的简介、安装和使用方法、案例应用之详细攻略

LLMs之gpt_academic:gpt_academic的简介、安装和使用方法、案例应用之详细攻略 目录 gpt_academic的简介 1、版本更新历史 版本: 1、新增功能及其描述 新界面(修改config.py中的LAYOUT选项即可实现“左右布局”和“上下布局”的切换) 所…

Linux shell编程学习笔记62: top命令 linux下的任务管理器

0 前言 top命令是Unix 和 Linux下常用的性能分析工具,提供了一个动态的、交互式的实时视图,显示系统的整体性能信息,以及正在运行的进程的相关信息,包括各个进程的资源占用状况,类似于Windows的任务管理器。 1 top命令…

鸿蒙:1.入门

概述 简介 鸿蒙操作系统(HarmonyOS)是华为公司发布的一款智能终端系统,是基于微内核的面向全场景的分布式操作系统。它致力于提供更加安全、高效、低延迟、低功耗的操作体验,可通过技术手段对应用程序和设备进行智能协同&#xf…

mac鼠标键盘共享:ShareMouse for Mac 激活版

hareMouse 是一款 Windows 和 macOS 操作系统上的共享和切换鼠标和键盘的实用工具。这款软件允许用户在多台计算机之间无缝地共享鼠标和键盘,使得在不同设备之间进行工作和操作变得更加便捷。占用资源少: ShareMouse 设计轻量,占用系统资源较…

JVM原理(十五):JVM虚拟机静态分配与动态分配

1. 分派 本节讲解的分派调用过程将会揭示多态性特征的一-些最基本的体现,如“重载”和“重写”在Java虚拟机之中是如何实现的。 1.1. 静态分派 案例: 我们先来看一段代码: Human mannew Man(); 我们把上面代码中的“Human"称为变量的“静态类型…

alibabacloud学习笔记10

讲解微服务链路追踪系统的作用 讲解什么Sleuth链路追踪系统 注释掉我们的网关过滤器。 注释掉断言。 网关服务,视频服务,订单服务,我们都给这段依赖添加进来。 调用一个请求。 我们可以看到控制台上会有输出。 讲解zipkin介绍和部署实战 访问…

Vite: 实现 no-bundle 开发服务 (2)

概述 基于前文 Vite: 实现 no-bundle 开发服务 (1) 我们基于下面的导图继续实现 no-bundle 构建服务 接下来我们需要完成如下的模块: CSS 编译插件静态资源加载插件模块依赖图开发,并在 transform 中间件中接入HMR 服务端代码开发HMR 客户端代码开发 CSS 编译插件…

泰国内部安全行动司令部数据泄露

BreachForums 论坛的一名成员宣布发生一起重大数据泄露事件,涉及泰国内部安全行动司令部 (ISOC),该机构被称为泰国皇家武装部队的政治部门。 目前,我们无法准确确认此次泄露的真实性,因为该组织尚未在其网站上发布有关该事件的任…

数据库管理-第217期 Oracle的高可用-02(20240704)

数据库管理217期 2024-07-04 数据库管理-第217期 Oracle的高可用-02(20240704)1 GDS简介2 GDS架构2.1 全局数据服务池2.2 全局数据服务域2.3 全局服务管理2.4 全局数据服务目录2.5 Oracle通知服务 3 GDS简图3.1 负载均衡3.2 只读服务失败转移3.3 多主复制…

项目基础知识

1.JDBC编程和MySQL数据库 数据库的连接(以前写qq项目时的代码) package com.wu.Util; import java.sql.*; public class JDBCUtil {private static JDBCUtil jdbcUtil null;private JDBCUtil() {}public static JDBCUtil getJdbcUtil() {if (jdbcUtil…

剧本杀小程序:助力商家发展,提高游戏体验

近几年,剧本杀游戏已经成为了当下年轻人娱乐的游戏社交方式。与其他游戏相比,剧本杀游戏具有强大的社交性,玩家在游戏中既可以推理玩游戏,也可以与其他玩家交流互动,提高玩家的游戏体验感。 随着互联网的发展&#xf…

Vue通过Key管理状态

Vue通过Key管理状态 Vue 默认按照“就地更新”的策略来更新,通过 v-for 渲染的元素列表。当数据项的顺序改变时,Vue 不会随之移动 DOM 元素的顺序,而是就地更新每个元素,确保它们在原本指定的索引位置上渲染。为了给 Vue 一个提示…

VIO(Virtual_Input_Output) IP 使用笔记

VIO(Virtual Input/Output)IP 核,即虚拟输入输出 IP,可以通过调试界面模拟 IO 的变化,这可以在板子没有按键等外设、或外设不足的情况下,来模拟外部输入。然而网上关于 VIO 的教程都说的不是很清楚&#xf…

html高级篇

1.2D转换 转换(transform)你可以简单理解为变形 移动:translate 旋转:rotate 缩放:sCale 移动:translate 1.移动具体值 /* 移动盒子的位置: 定位 盒子的外边距 2d转换移动 */div {width…

【python】OpenCV—Nighttime Low Illumination Image Enhancement

文章目录 1 背景介绍2 代码实现3 原理分析4 效果展示5 附录np.ndindexnumpy.ravelnumpy.argsortcv2.detailEnhancecv2.edgePreservingFilter 1 背景介绍 学习参考来自:OpenCV基础(24)改善夜间图像的照明 源码: 链接&#xff1a…

Linux 文件系统以及日志管理

一、inode 与block 1. inode 与block详解 在文件存储硬盘上,硬盘的最小存储单位叫做“扇区”,每个为512字节。 操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取…

PyMuPDF 操作手册 - 09 API - Page属性方法和简短说明

文章目录 一、Page属性方法和简短说明一、Page属性方法和简短说明 https://pymupdf.readthedocs.io/en/latest/page.html Method/Attribute属性方法Short Description简短说明Page.add_caret_annot()仅限 PDF:添加插入符号注释Page.add_circle_annot()仅限 PDF:添加圆圈…

微服务粒度难题:找到合适的微服务大小

序言 在微服务架构风格中,微服务通常设计遵循SRP(单一职责原则),作为一个独立部署的软件单元,专注于做一件事,并且做到极致。作为开发人员,我们常常倾向于在没有考虑为什么的情况下尽可能地将服…

头歌资源库(20)最大最小数

一、 问题描述 二、算法思想 使用分治法,可以将数组递归地分割成两部分,直到数组长度为1或2。然后比较这两部分的最大、次大、次小、最小数,最终得到整个数组中的最大两个数和最小两个数。 算法步骤如下: 定义一个函数 findMinM…