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之前,需要进行一些准备工作以确保安装过程顺利进行。本节将指导完成这些必要的前期准备步骤。
- 确保安装了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。
- 确认系统架构
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模块可以实现与硬盘的交互,例如文件的创建、删除、重命名、移动等,还有文件内容的写入、读取ÿ…...
探索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数据库学习】系列文章一、整…...
synchronized 学习
学习源: https://www.bilibili.com/video/BV1aJ411V763?spm_id_from333.788.videopod.episodes&vd_source32e1c41a9370911ab06d12fbc36c4ebc 1.应用场景 不超卖,也要考虑性能问题(场景) 2.常见面试问题: sync出…...
ES6从入门到精通:前言
ES6简介 ES6(ECMAScript 2015)是JavaScript语言的重大更新,引入了许多新特性,包括语法糖、新数据类型、模块化支持等,显著提升了开发效率和代码可维护性。 核心知识点概览 变量声明 let 和 const 取代 var…...
【网络安全产品大调研系列】2. 体验漏洞扫描
前言 2023 年漏洞扫描服务市场规模预计为 3.06(十亿美元)。漏洞扫描服务市场行业预计将从 2024 年的 3.48(十亿美元)增长到 2032 年的 9.54(十亿美元)。预测期内漏洞扫描服务市场 CAGR(增长率&…...
什么是库存周转?如何用进销存系统提高库存周转率?
你可能听说过这样一句话: “利润不是赚出来的,是管出来的。” 尤其是在制造业、批发零售、电商这类“货堆成山”的行业,很多企业看着销售不错,账上却没钱、利润也不见了,一翻库存才发现: 一堆卖不动的旧货…...
Frozen-Flask :将 Flask 应用“冻结”为静态文件
Frozen-Flask 是一个用于将 Flask 应用“冻结”为静态文件的 Python 扩展。它的核心用途是:将一个 Flask Web 应用生成成纯静态 HTML 文件,从而可以部署到静态网站托管服务上,如 GitHub Pages、Netlify 或任何支持静态文件的网站服务器。 &am…...
Axios请求超时重发机制
Axios 超时重新请求实现方案 在 Axios 中实现超时重新请求可以通过以下几种方式: 1. 使用拦截器实现自动重试 import axios from axios;// 创建axios实例 const instance axios.create();// 设置超时时间 instance.defaults.timeout 5000;// 最大重试次数 cons…...
ardupilot 开发环境eclipse 中import 缺少C++
目录 文章目录 目录摘要1.修复过程摘要 本节主要解决ardupilot 开发环境eclipse 中import 缺少C++,无法导入ardupilot代码,会引起查看不方便的问题。如下图所示 1.修复过程 0.安装ubuntu 软件中自带的eclipse 1.打开eclipse—Help—install new software 2.在 Work with中…...
Android Bitmap治理全解析:从加载优化到泄漏防控的全生命周期管理
引言 Bitmap(位图)是Android应用内存占用的“头号杀手”。一张1080P(1920x1080)的图片以ARGB_8888格式加载时,内存占用高达8MB(192010804字节)。据统计,超过60%的应用OOM崩溃与Bitm…...
智能分布式爬虫的数据处理流水线优化:基于深度强化学习的数据质量控制
在数字化浪潮席卷全球的今天,数据已成为企业和研究机构的核心资产。智能分布式爬虫作为高效的数据采集工具,在大规模数据获取中发挥着关键作用。然而,传统的数据处理流水线在面对复杂多变的网络环境和海量异构数据时,常出现数据质…...
使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台
🎯 使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台 📌 项目背景 随着大语言模型(LLM)的广泛应用,开发者常面临多个挑战: 各大模型(OpenAI、Claude、Gemini、Ollama)接口风格不统一;缺乏一个统一平台进行模型调用与测试;本地模型 Ollama 的集成与前…...
