当前位置: 首页 > news >正文

Ubuntu 18.04上安装cuDNN 8.9.6.50:一站式指南

Content

  • 一、前言
  • 二、准备工作
  • 三、安装步骤
    • 1. 启用本地仓库
    • 2. 导入CUDA GPG密钥
    • 3. 更新仓库元数据
    • 4. 安装运行时库
    • 5. 安装开发者库
    • 6. 安装代码示例
    • 7. 另外一种安装办法
  • 四、验证安装
    • 1. 验证cuDNN版本
    • 2. 测试示例代码
  • 五、总结

一、前言

在深度学习领域,高效的计算资源对于模型训练和推理过程至关重要。NVIDIA CUDA Deep Neural Network library(cuDNN)作为一个GPU加速库,针对深度神经网络(DNN)的前向传播和反向传播提供高度优化的实现。通过利用NVIDIA GPU的强大计算能力,cuDNN显著加速了深度学习应用的运行速度,成为深度学习研究和开发中的重要组成部分。

cuDNN提供的高级接口标准化了在多种深度学习框架上构建GPU加速应用的过程。这意味着,无论是使用TensorFlow、PyTorch还是其他深度学习框架,cuDNN均能确保模型能够充分利用NVIDIA GPU的计算能力,实现最优性能。

本文将指导读者在Ubuntu 18.04操作系统上安装cuDNN版本8.9.6.50。通过遵循本文提供的步骤,可以顺利完成cuDNN的安装,为深度学习项目提供坚实的基础。文章旨在为深度学习研究者和开发者提供一个清晰、简洁的安装指南,帮助他们无缝开始或继续深度学习的研究与开发工作。


二、准备工作

在开始安装cuDNN 8.9.6.50之前,需要进行一些准备工作以确保安装过程顺利进行。本节将指导完成这些必要的前期准备步骤。

  1. 确保安装了NVIDIA CUDA Toolkit 11.8
    cuDNN是建立在CUDA技术之上的,因此要求系统中已安装兼容版本的CUDA Toolkit。对于cuDNN 8.9.6.50,需要安装CUDA Toolkit 11.8。可以通过以下命令在终端中检查CUDA版本:
nvcc --version

如果系统尚未安装CUDA Toolkit 11.x,可以通过访问NVIDIA官网下载安装包或使用适用于Ubuntu的包管理器进行安装。确保遵循NVIDIA提供的官方安装指南来安装CUDA Toolkit。

  1. 确认系统架构
    cuDNN和CUDA Toolkit的安装包分为不同的架构版本,如x86_64(通常称为amd64)、arm64等。本文档以amd64架构为例,这是目前最常见的个人电脑和服务器架构之一。可以通过执行以下命令来确认您的系统架构:
uname -m

如果输出是x86_64,则表示系统是amd64架构。这是安装适用于大多数现代个人电脑和服务器的cuDNN版本的前提。
完成上述两项准备工作后,即可继续进行cuDNN的安装过程。这些步骤确保了安装环境的正确配置,为cuDNN的顺利安装打下了坚实的基础。


三、安装步骤

进行cuDNN安装之前,确保已完成准备工作,包括确认系统已安装NVIDIA CUDA Toolkit 11.8并且系统架构为amd64。以下是cuDNN 8.9.6.50安装过程的详细步骤。

1. 启用本地仓库

首先,需要将cuDNN的本地仓库包安装到系统中。这可以通过dpkg命令完成。假定cuDNN的.deb安装包已下载到本地,并位于当前目录下:

sudo dpkg -i cudnn-local-repo-ubuntu1804-8.9.6.50_1.0-1_amd64.deb

此命令将安装本地仓库,使得通过APT包管理器安装cuDNN相关包成为可能。

2. 导入CUDA GPG密钥

为确保安装包的安全性,接下来需要导入CUDA GPG密钥到系统的密钥环中。这一步骤确认了包的真实性和完整性:

sudo cp /var/cudnn-local-repo-ubuntu1804-8.9.6.50/cudnn-local-A48BB858-keyring.gpg /usr/share/keyrings/

通过导入GPG密钥,系统能够验证从本地仓库安装的软件包是经过NVIDIA官方签名的。

3. 更新仓库元数据

安装本地仓库包并导入GPG密钥后,需要更新APT的仓库元数据,以确保APT能够识别新添加的仓库:

sudo apt update

此命令刷新APT的包列表,准备安装新的软件包。

4. 安装运行时库

接下来,安装cuDNN的运行时库。这是运行基于cuDNN开发的应用程序所必需的:

sudo apt install libcudnn8

如果需要安装特定版本的cuDNN运行时库,可以指定版本号:

sudo apt install libcudnn8=8.9.6.50+cuda11.8

5. 安装开发者库

为了开发基于cuDNN的应用,还需要安装开发者库:

sudo apt install libcudnn8-dev

同样,指定版本号安装也是可能的:

sudo apt install libcudnn8-dev=8.9.6.50+cuda11.8

安装开发者库后,开发者可以在自己的应用程序中直接使用cuDNN API进行深度学习模型的开发和优化。

6. 安装代码示例

最后,安装cuDNN代码示例可以帮助开发者快速了解如何使用cuDNN API:

sudo apt install libcudnn8-samples

示例代码位于/usr/src/cudnn_samples_v8目录下,通过编译和运行这些示例,开发者可以验证cuDNN安装是否成功,同时学习如何在自己的应用中使用cuDNN。

以上步骤完成了cuDNN 8.9.6.50在Ubuntu 18.04系统上的安装过程,为深度学习项目的开发提供了强大的工具和库。

7. 另外一种安装办法

在启用本地仓库并导入CUDA GPG密钥后,在/var/cudnn-local-repo-ubuntu1804-8.9.6.50有上面三个的deb安装文件,直接通过sudo dpkg -i安装即可。


四、验证安装

安装完成后,验证cuDNN是否正确安装至关重要。以下步骤将帮助确认cuDNN库已成功安装并且能够在系统上正常工作。

1. 验证cuDNN版本

首先,可以通过查询已安装的libcudnn8包来验证cuDNN的版本。在终端中执行以下命令:

apt show libcudnn8

此命令将显示已安装的cuDNN运行时库的详细信息,包括版本号。确认显示的版本号与预期安装的cuDNN版本(8.9.6.50)相匹配。

2. 测试示例代码

cuDNN安装包中包含示例代码,可以用于验证安装。这些示例展示了cuDNN功能的基本用法,是检查cuDNN是否正确安装和配置的好方法。

编译示例代码: 首先,导航到包含cuDNN示例代码的目录。如果已安装libcudnn8-samples,示例代码通常位于/usr/src/cudnn_samples_v8/目录下。编译示例代码前,需要复制该目录到用户的家目录下,避免权限问题:

cp -r /usr/src/cudnn_samples_v8/ ~/cudnn_samples_v8
cd ~/cudnn_samples_v8/mnistCUDNN
sudo make clean && sudo make

这将编译mnistCUDNN示例,一个演示如何使用cuDNN进行数字识别的小程序。

运行示例代码: 编译成功后,运行编译好的示例程序:

./mnistCUDNN

如果cuDNN安装正确,此程序将成功运行,通常会输出识别准确率或其他成功执行的指标。

运行示例代码不仅验证了cuDNN库的安装,也展示了如何在实际应用中使用cuDNN进行深度学习计算。如果示例程序运行成功,表示cuDNN已正确安装在系统上,准备好支持深度学习应用的开发和运行。


五、总结

本文详细介绍了在Ubuntu 18.04系统上安装cuDNN 8.9.6.50版本的步骤,从准备工作到安装过程,再到验证安装的完成,每一步都旨在确保用户能够顺利完成cuDNN的安装。通过启用本地仓库、导入CUDA GPG密钥、更新仓库元数据、安装运行时库、开发者库及代码示例,用户可以为深度学习项目搭建起强大的计算基础。

验证安装过程通过编译和运行cuDNN提供的示例代码,帮助用户确认cuDNN库已成功安装并可用。这一步骤不仅确保了安装的正确性,也为用户提供了如何在实际项目中使用cuDNN的初步经验。

cuDNN是深度学习研究和应用中不可或缺的工具,能够显著提升基于NVIDIA GPU的计算效率。正确安装并配置cuDNN,对于开发高效、可靠的深度学习模型至关重要。希望本文能够为需要在Ubuntu系统上安装cuDNN的开发者提供清晰、有用的指导,帮助他们顺利开始或继续他们的深度学习项目。

相关文章:

Ubuntu 18.04上安装cuDNN 8.9.6.50:一站式指南

Content 一、前言二、准备工作三、安装步骤1. 启用本地仓库2. 导入CUDA GPG密钥3. 更新仓库元数据4. 安装运行时库5. 安装开发者库6. 安装代码示例7. 另外一种安装办法 四、验证安装1. 验证cuDNN版本2. 测试示例代码 五、总结 一、前言 在深度学习领域,高效的计算资…...

Microsoft Word 超链接

Microsoft Word 超链接 1. 取消超链接2. 自动超链接2.1. 选项2.2. 校对 -> 自动更正选项2.3. Internet 及网络路径替换为超链接 References 1. 取消超链接 Ctrl A -> Ctrl Shift F9 2. 自动超链接 2.1. 选项 2.2. 校对 -> 自动更正选项 ​​​ 2.3. Internet…...

SparkJDBC读写数据库实战

默认的操作 代码val df = spark.read.format("jdbc").option("url", "jdbc:postgresql://localhost:5432/testdb").option("user", "username").option("password", "password").option("driver&q…...

代码随想录 -- 数组

文章目录 二分查找题目描述题解 移除元素题目描述题解:暴力解法题解:双指针法 有序数组的平方题目描述题解:暴力解法题解:双指针法 长度最小的子数组题目描述题解:暴力解法题解:滑动窗口(双指针…...

【国产MCU】-CH32V307-基本定时器(BCTM)

基本定时器(BCTM) 文章目录 基本定时器(BCTM)1、基本定时器(BCTM)介绍2、基本定时器驱动API介绍3、基本定时器使用实例CH32V307的基本定时器模块包含一个16 位可自动重装的定时器(TIM6和TIM7),用于计数和在更新新事件产生中断或DMA 请求。 本文将详细介绍如何使用CH32…...

Node.js开发-fs模块

这里写目录标题 fs模块1) 文件写入2) 文件写入3) 文件移动与重命名4) 文件删除5) 文件夹操作6) 查看资源状态7) 相对路径问题8) __dirname fs模块 fs模块可以实现与硬盘的交互,例如文件的创建、删除、重命名、移动等,还有文件内容的写入、读取&#xff…...

探索Nginx:强大的开源Web服务器与反向代理

一、引言 随着互联网的飞速发展,Web服务器在现代技术架构中扮演着至关重要的角色。Nginx(发音为“engine x”)是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。Nginx因其卓越的性能、稳定性和灵活性&…...

相机图像质量研究(4)常见问题总结:光学结构对成像的影响--焦距

系列文章目录 相机图像质量研究(1)Camera成像流程介绍 相机图像质量研究(2)ISP专用平台调优介绍 相机图像质量研究(3)图像质量测试介绍 相机图像质量研究(4)常见问题总结:光学结构对成像的影响--焦距 相机图像质量研究(5)常见问题总结:光学结构对成…...

【从Python基础到深度学习】1. Python PyCharm安装及激活

前言: 为了帮助大家快速入门机器学习-深度学习,从今天起我将用100天的时间将大学本科期间的所学所想分享给大家,和大家共同进步。【从Python基础到深度学习】系列博客中我将从python基础开始通过知识和代码实践结合的方式进行知识的分享和记…...

片上网络NoC(3)——拓扑指标

目录 一、概述 二、指标 2.1 与网络流量无关的指标 2.1.1 度(degree) 2.1.2 对分带宽(bisection bandwidth) 2.1.3 网络直径(diameter) 2.2 与网络流量相关的指标 2.2.1 跳数(hop coun…...

二叉树 ---- 所有结点数

普通二叉树的结点数: 递归法: 对二叉树进行前序or后序遍历: typedef struct Tree {int data;Tree* leftChild;Tree* rightChild; }tree,*linklist; //计算普通二叉树的结点数 int nodenums(linklist node) {if(node nullptr) return 0; …...

步步深入 k8s 使用 pv pvc sc 在 nfs 基础上共享存储

博客原文 文章目录 前言集群环境nfs 环境搭建pod 挂载 nfs架构图 pvc 方式挂载 nfs架构图 storageclass 方式动态申请 pv架构图 参考 前言 持久化卷(Persistent Volume, PV)允许用户将外部存储映射到集群,而持久化卷申请(Persist…...

Stable Diffusion 模型下载:Disney Pixar Cartoon Type A(迪士尼皮克斯动画片A类)

本文收录于《AI绘画从入门到精通》专栏,专栏总目录:点这里。 文章目录 模型介绍生成案例案例一案例二案例三案例四案例五案例六案例七案例八案例九案例十...

Modelsim10.4安装

简介(了解,可跳过) modelsim是Mentor公司开发的优秀的HDL语言仿真软件。 它能提供友好的仿真环境,采用单内核支持VHDL和Verilog混合仿真的仿真器。它采用直接优化的编译技术、Tcl/Tk技术和单一内核仿真技术,编译仿真速…...

Java基于微信小程序的医院核酸检测服务系统,附源码

博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇…...

VC++ 绘制折线学习

win32 有三个绘制折线的函数; Polyline,根据给定点数组绘制折线; PolylineTo,除了绘制也更新当前位置; PolyPolyline,绘制多条折线,第一个参数是点数组,第二个参数是一个数组、指…...

速盾:dns解析和cdn加速的区别与联系

DNS解析和CDN加速是两种不同的网络技术,但在网站访问过程中起到了相互协作的作用。 首先,DNS解析(Domain Name System)是将域名转换为IP地址的过程。当用户输入一个网址时,计算机会先向本地DNS服务器发送一个查询请求…...

C++ Qt框架开发 | 基于Qt框架开发实时成绩显示排序系统(3) 保存表格数据

对上两篇篇的工作C Qt框架开发| 基于Qt框架开发实时成绩显示排序系统(1)-CSDN博客和C Qt框架开发 | 基于Qt框架开发实时成绩显示排序系统(2)折线图显示-CSDN博客继续优化,增加一个保存按钮,用于保存成绩数据…...

ChatGPT 4:新特性与优势

ChatGPT 4:新特性与优势 一、引言 ChatGPT 4是一款备受瞩目的人工智能模型,它以其强大的语言生成能力和智能回答能力,为用户提供了更高效、更便捷的对话体验。为了能够充分享受ChatGPT 4的各项功能,本文将向您详细介绍其新特性&…...

【教程】MySQL数据库学习笔记(二)——数据类型(持续更新)

写在前面: 如果文章对你有帮助,记得点赞关注加收藏一波,利于以后需要的时候复习,多谢支持! 【MySQL数据库学习】系列文章 第一章 《认识与环境搭建》 第二章 《数据类型》 文章目录 【MySQL数据库学习】系列文章一、整…...

线程同步:确保多线程程序的安全与高效!

全文目录: 开篇语前序前言第一部分:线程同步的概念与问题1.1 线程同步的概念1.2 线程同步的问题1.3 线程同步的解决方案 第二部分:synchronized关键字的使用2.1 使用 synchronized修饰方法2.2 使用 synchronized修饰代码块 第三部分&#xff…...

为什么需要建设工程项目管理?工程项目管理有哪些亮点功能?

在建筑行业,项目管理的重要性不言而喻。随着工程规模的扩大、技术复杂度的提升,传统的管理模式已经难以满足现代工程的需求。过去,许多企业依赖手工记录、口头沟通和分散的信息管理,导致效率低下、成本失控、风险频发。例如&#…...

vue3 定时器-定义全局方法 vue+ts

1.创建ts文件 路径&#xff1a;src/utils/timer.ts 完整代码&#xff1a; import { onUnmounted } from vuetype TimerCallback (...args: any[]) > voidexport function useGlobalTimer() {const timers: Map<number, NodeJS.Timeout> new Map()// 创建定时器con…...

如何在网页里填写 PDF 表格?

有时候&#xff0c;你可能希望用户能在你的网站上填写 PDF 表单。然而&#xff0c;这件事并不简单&#xff0c;因为 PDF 并不是一种原生的网页格式。虽然浏览器可以显示 PDF 文件&#xff0c;但原生并不支持编辑或填写它们。更糟的是&#xff0c;如果你想收集表单数据&#xff…...

Razor编程中@Html的方法使用大全

文章目录 1. 基础HTML辅助方法1.1 Html.ActionLink()1.2 Html.RouteLink()1.3 Html.Display() / Html.DisplayFor()1.4 Html.Editor() / Html.EditorFor()1.5 Html.Label() / Html.LabelFor()1.6 Html.TextBox() / Html.TextBoxFor() 2. 表单相关辅助方法2.1 Html.BeginForm() …...

DeepSeek越强,Kimi越慌?

被DeepSeek吊打的Kimi&#xff0c;还有多少人在用&#xff1f; 去年&#xff0c;月之暗面创始人杨植麟别提有多风光了。90后清华学霸&#xff0c;国产大模型六小虎之一&#xff0c;手握十几亿美金的融资。旗下的AI助手Kimi烧钱如流水&#xff0c;单月光是投流就花费2个亿。 疯…...

boost::filesystem::path文件路径使用详解和示例

boost::filesystem::path 是 Boost 库中用于跨平台操作文件路径的类&#xff0c;封装了路径的拼接、分割、提取、判断等常用功能。下面是对它的使用详解&#xff0c;包括常用接口与完整示例。 1. 引入头文件与命名空间 #include <boost/filesystem.hpp> namespace fs b…...

Docker、Wsl 打包迁移环境

电脑需要开启wsl2 可以使用wsl -v 查看当前的版本 wsl -v WSL 版本&#xff1a; 2.2.4.0 内核版本&#xff1a; 5.15.153.1-2 WSLg 版本&#xff1a; 1.0.61 MSRDC 版本&#xff1a; 1.2.5326 Direct3D 版本&#xff1a; 1.611.1-81528511 DXCore 版本&#xff1a; 10.0.2609…...

Easy Excel

Easy Excel 一、依赖引入二、基本使用1. 定义实体类&#xff08;导入/导出共用&#xff09;2. 写 Excel3. 读 Excel 三、常用注解说明&#xff08;完整列表&#xff09;四、进阶&#xff1a;自定义转换器&#xff08;Converter&#xff09; 其它自定义转换器没生效 Easy Excel在…...

在Spring Boot中集成RabbitMQ的完整指南

前言 在现代微服务架构中&#xff0c;消息队列&#xff08;Message Queue&#xff09;是实现异步通信、解耦系统组件的重要工具。RabbitMQ 是一个流行的消息中间件&#xff0c;支持多种消息协议&#xff0c;具有高可靠性和可扩展性。 本博客将详细介绍如何在 Spring Boot 项目…...