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

【深度学习环境配置】一文弄懂cuda,cudnn,NVIDIA Driver version,cudatoolkit的关系

【深度学习环境配置】一文弄懂cuda,cuDNN,NVIDIA Driver version,cudatoolkit的关系

  • NVIDIA Driver version(NVIDIA驱动程序)
  • CUDA
  • cuDNN
  • cudatoolkit
  • 深度学习环境配置顺序

今天突然发现配置的环境有些问题,意识到对于cuda,cuDNN,NVIDIA Driver version,cudatoolkit的关系理解不够透彻,特记录一下
【注】:本文的前提在于要有Nvidia的独显GPU,本文的图片一部分来自我之前在windows下配置的博客配置深度学习环境:在Windows(Win10)中安装CUDA,CUDNN,Pytorch GPU版,另一部分为ubuntu下配置截取的

NVIDIA Driver version(NVIDIA驱动程序)

  • NVIDIA驱动程序(NVIDIA Driver)是安装在计算机上的软件,用于管理NVIDIA GPU的运行和功能。它是连接操作系统与GPU之间的桥梁,负责驱动GPU的操作,并提供对GPU硬件的访问接口。
  • windows下查看NVIDIA Driver version版本方法为:桌面 --》 鼠标右键 --》NVIDIA控制面板–》系统信息–》组件 --》NVCUDA64.DLL 在产品名称栏
    在这里插入图片描述
    在这里插入图片描述
  • **Ubuntu下查看NVIDIA Driver version版本方法为:应用菜单栏–》软件和更新–》附加驱动 525即是我的驱动版本 **
    在这里插入图片描述
  • ubuntu安装nvidia driver显卡驱动可查看这里3分钟安装ubuntu20.04显卡驱动
  • nvidia-smi用于查询和监控NVIDIA GPU的状态和信息。它可以显示诸如GPU型号、驱动程序版本、GPU使用率、温度、显存使用情况等信息。
  • 使用命令nvidia-smi也可查看driver版本,525.125.06我安装的具体版本
  • 使用命令nvidia-smi看到的CUDA Version,是指该NVIDIA驱动程序所支持的最高CUDA版本,下图显示的即为支持的最高CUDA版本为12.0
    在这里插入图片描述
  • CUDA提供了两种API,分别是运行时API(CUDA Runtime API)和驱动API(Driver API)
  • 驱动API(Driver API)的版本对应nvidia-smi显示的CUDA Driver结果(该NVIDIA驱动程序所支持的最高CUDA版本)
  • 运行时API(CUDA Runtime API)对应于nvcc -V显示的结果
  • 一般情况下,nvcc -V显示的版本号是小于等于nvidia-smi所显示的cuda版本,这就是二者显示版本不一致的原因所在

CUDA

  • CUDA(Compute Unified Device Architecture)是由NVIDIA开发的一种并行计算平台和编程模型,它允许开发者使用NVIDIA的GPU(图形处理单元)进行高性能的计算操作。
  • CUDA为开发者提供了一套扩展的C/C++编程语言,使得他们能够在GPU上实现并行计算,从而显著加速科学计算和图形渲染等任务。
  • 通常情况下,当提到CUDA时,指的是CUDA Runtime版本。CUDA Runtime是一组库和工具,用于在应用程序中进行并行计算,提供了一系列API和函数,用于在NVIDIA GPU上执行并行计算任务。
  • CUDA Runtime的版本通过nvcc -V查询
  • 选择安装的CUDA Runtime版本取决于显卡GPU的算力和NVIDIA Driver version显卡驱动版本
  • 显卡算力与CUDA Runtime的对应关系 请查看这里,先搜索显卡型号查找算力,再根据算力选择CUDA Runtime

在这里插入图片描述

  • 查看自身显卡的算力,在此网站中搜索显卡型号,可以看到我显卡对应的算力是7.5

  • 该网站的后面有CUDA版本和算力的对应关系,查看显卡算力支持的CUDA版本

在这里插入图片描述

  • 算力7.5支持的CUDA版本有10.0-10.2,11.0,11.1-11.4,11.5–11.7.1,11.8,12.0
  • CUDA Runtime版本与NVIDIA Driver version显卡驱动版本的关系,请查看这里
    在这里插入图片描述
  • ubuntu下安装的cuda,一般在/usr/local下的cuda路径下
  • cuda官网下载地址CUDA Toolkit Archive

cuDNN

  • cuDNN(CUDA Deep Neural Network library)是由NVIDIA提供的一个用于深度学习的GPU加速库。它包含了一系列针对深度神经网络的优化算法和函数,能够大幅提升深度学习模型的训练和推理速度
  • cuDNN已经被集成在Pytorch中,无需单独安装,但是如果需要从源码编译就还是需要安装cuDNN,具体链接如下
  • cuDNN官网下载链接
    在这里插入图片描述

写这篇文章的起因就是突然发现自己没有安装cuda,cudnn,在安装了pytorch gpu版之后也可以使用gpu运行代码
https://discuss.pytorch.org/t/how-to-check-if-torch-uses-cudnn/21933/3
这篇帖子解释了原因,但我个人觉得cuda runtime还是要安装的

cudatoolkit

  • CUDA Toolkit是用于开发和优化CUDA应用程序的软件开发工具包。它包含了一系列的工具、库和文档,以及与硬件驱动程序和其他库(如cuDNN、cuBLAS等)兼容的开发环境
  • 在安装pytorch的时候,通常后面都会跟着安装 cudatoolkit

在这里插入图片描述

  • CUDA Toolkit提供了必要的工具和库,使PyTorch能够与GPU进行交互,并在GPU上执行计算任务
  • CUDA Toolkit使PyTorch能够利用GPU的并行计算能力,加速模型的训练和推理过程,从而提高效率和性能

深度学习环境配置顺序

  1. **安装显卡驱动NVIDIA Driver **
  2. 根据显卡算力和NVIDIA Driver version显卡驱动版本选择适合的CUDA runtime版本
  3. 安装CUDA runtime,cuDNN可跳过不进行安装
  4. 安装anaconda
  5. 创建虚拟环境
  6. 安装pytorch/tensorflow等深度学习框架

相关文章:

【深度学习环境配置】一文弄懂cuda,cudnn,NVIDIA Driver version,cudatoolkit的关系

【深度学习环境配置】一文弄懂cuda,cuDNN,NVIDIA Driver version,cudatoolkit的关系 NVIDIA Driver version(NVIDIA驱动程序)CUDAcuDNNcudatoolkit深度学习环境配置顺序 今天突然发现配置的环境有些问题,意…...

C语言中的字符与字符串:魔法般的函数探险

前言 在C语言的世界里,字符和字符串是两个不可或缺的元素,它们像是魔法般的存在,让文字与代码交织出无限可能。而在这个世界里,有一批特殊的函数,它们如同探险家,引领我们深入字符与字符串的秘境&#xff0…...

【JAVASE】带你了解面向对象三大特性之一(继承)

✅作者简介:大家好,我是橘橙黄又青,一个想要与大家共同进步的男人😉😉 🍎个人主页:再无B~U~G-CSDN博客 1.继承 1.1 为什么需要继承 Java 中使用类对现实世界中实体来…...

Git 如何去使用

目录 1. Git暂存区的使用 1.1. 暂存区的作用 1.2. 暂存区覆盖工作区(注意:完全确认覆盖时使用) 1.3. 暂存区移除文件 1.4. 练习 2. Git回退版本 2.1. 概念 2.2. 查看提交历史 2.3. 回退命令 2.4. 注意 3. Git删除文件 3.1. 需求 …...

C语言 | Leetcode C语言题解之第12题整数转罗马数字

题目: 题解: const char* thousands[] {"", "M", "MM", "MMM"}; const char* hundreds[] {"", "C", "CC", "CCC", "CD", "D", "DC"…...

【软件工程】测试规格

1. 引言 1.1简介 本次的测试用例是基于核心代码基本开发完毕,在第一代系统基本正常运行后编写的,主要目的是为了后续开发与维护的便利性。 该文档主要受众为该系统后续开发人员,并且在阅读此文档前最后先阅读本系统的需求文档、概要设计文…...

Nginx中间件服务:负载均衡(调度算法)

文章目录 引言I 原理1.1 后端服务器在负载均衡调度中的状态1.2 调度算法II upstreamd的应用2.1 加权负载均衡的服务器列表2.2 AB测试中使用upstream切分流量2.3 基于URL的HASH2.4 IP_HASHsee also引言 作用 转发功能:按照一定的调度算法(轮询、权重)将客户端发来的请求转发…...

dm8数据迁移工具DTS

dm8数据迁移工具DTS DTS工具介绍 DM数据迁移工具提供了主流大型数据库迁移到DM、DM到DM、文件迁移到DM以及DM迁移到文件的功能。DM数据迁移工具采用向导方式引导用户通过简单的步骤完成需要的操作。 DM数据迁移工具支持: ◆ 主流大型数据库Oracle、SQLServer、MyS…...

【QT教程】QML与C++的交互

主页 软件开发 QT6 QML高级编程补天云火鸟自动化创作平台您能够创建大约3000 个短视频一天可以轻松创建多达 100 个视频 QML与C的交互 使用AI技术辅助生成 【QT免费公开课】您可以到这里观看大量的QT视频课程 【QT付费视频课程】QT QML C 高级扩展开发 目录 1 QML与C的交互…...

idea maven 打包 内存溢出 报 GC overhead limit exceeded -> [Help 1]

idea 使用maven打包 报GC overhead limit exceeded -> [Help 1] 解决方法: 打开settings -> 点开如同所示 将 vm Options 参数 设为 -Xmx8g...

wordpress全站开发指南-面向开发者及深度用户(全中文实操)--创建新主题

前言 你可以在wordpress里面下载使用人家打包好的主题,但可能不是很好用,接下来就自己做一个自己的主题。你需要先找到xampp文件夹–htdocs–wordpress(我给更名为wplocal)–wp-content–themes 进入该文件夹之后你可以看到你之前下载导入的所有主题文件…...

docker从入门到熟悉

一、什么是docker? Docker是一个用于开发,交付和运行应用程序的开放平台。Docker使您能够将应用程序与基础架构分开,从而可以快速交付软件。借助Docker,您可以以与管理应用程序相同的方式来管理基础架构。通过利用Docker的快速交付…...

国家开放大学《消费者权益保护法》形考任务答案

答案:更多答案,请关注【电大搜题】微信公众号 答案:更多答案,请关注【电大搜题】微信公众号 答案:更多答案,请关注【电大搜题】微信公众号 消费者田女士买回一盒饼干价格20元,准备给小孩吃…...

element-ui card 组件源码分享

今日简单分享 card 组件源码,主要从以下两个方面: 一、card 组件页面结构 二、card 组件属性 2.1 header 属性,设置 header,也可以通过 slot#header 传入 DOM,类型 string,无默认值。 组件使用部分&#…...

MPLS基本转发过程,隧道特性、对TTL的处理、BGP路由黑洞

MPLS基本转发过程,隧道特性 标签操作类型包括标签压入(Push)、标签交换(Swap)和标签弹出(Pop),它们是标签转发的基本动作。 倒数第二跳弹出特性PHP(Penultimate Hop Popp…...

ubuntu16.04安装vscode那些事

1)安装deb包。 用ftp传输到ubuntu后,进入ftp的目录下, sudo dpkg -i code_1.32.3-1552606978_amd64.deb 安装完成后,进入/usr/share/applications/,找到vscode的图标,右键, copy to ,选择deskt…...

分类预测 | Matlab实现TCN-BiGRU-Mutilhead-Attention时间卷积双向门控循环单元多头注意力机制多特征分类预测/故障识别

分类预测 | Matlab实现TCN-BiGRU-Mutilhead-Attention时间卷积双向门控循环单元多头注意力机制多特征分类预测/故障识别 目录 分类预测 | Matlab实现TCN-BiGRU-Mutilhead-Attention时间卷积双向门控循环单元多头注意力机制多特征分类预测/故障识别分类效果基本介绍模型描述程序…...

不重复数字

map就感觉很舒服 题目描述 给定 n 个数,要求把其中重复的去掉,只保留第一次出现的数。 输入格式 本题有多组数据。 第一行一个整数 T,表示数据组数。 对于每组数据: 第一行一个整数 n。 第二行 n 个数,表示给定的数。…...

C# 访问修饰符 默认

命名空间下的元素:类(Class)中的成员:结构(Struct)中的成员:接口(Interface)中的成员:接口(Interface)本身:枚举&#xff…...

使用向量检索和rerank 在RAG数据集上实验评估hit_rate和mrr

文章目录 背景简介代码实现自定义检索器向量检索实验向量检索和rerank 实验 代码开源 背景 在前面部分 大模型生成RAG评估数据集并计算hit_rate 和 mrr 介绍了使用大模型生成RAG评估数据集与评估; 在 上文 使用到了BM25 关键词检索器。接下来,想利用向…...

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…...

华为云AI开发平台ModelArts

华为云ModelArts:重塑AI开发流程的“智能引擎”与“创新加速器”! 在人工智能浪潮席卷全球的2025年,企业拥抱AI的意愿空前高涨,但技术门槛高、流程复杂、资源投入巨大的现实,却让许多创新构想止步于实验室。数据科学家…...

Auto-Coder使用GPT-4o完成:在用TabPFN这个模型构建一个预测未来3天涨跌的分类任务

通过akshare库,获取股票数据,并生成TabPFN这个模型 可以识别、处理的格式,写一个完整的预处理示例,并构建一个预测未来 3 天股价涨跌的分类任务 用TabPFN这个模型构建一个预测未来 3 天股价涨跌的分类任务,进行预测并输…...

Python爬虫(二):爬虫完整流程

爬虫完整流程详解(7大核心步骤实战技巧) 一、爬虫完整工作流程 以下是爬虫开发的完整流程,我将结合具体技术点和实战经验展开说明: 1. 目标分析与前期准备 网站技术分析: 使用浏览器开发者工具(F12&…...

前端开发面试题总结-JavaScript篇(一)

文章目录 JavaScript高频问答一、作用域与闭包1.什么是闭包(Closure)?闭包有什么应用场景和潜在问题?2.解释 JavaScript 的作用域链(Scope Chain) 二、原型与继承3.原型链是什么?如何实现继承&a…...

数据库分批入库

今天在工作中,遇到一个问题,就是分批查询的时候,由于批次过大导致出现了一些问题,一下是问题描述和解决方案: 示例: // 假设已有数据列表 dataList 和 PreparedStatement pstmt int batchSize 1000; // …...

深入解析C++中的extern关键字:跨文件共享变量与函数的终极指南

🚀 C extern 关键字深度解析:跨文件编程的终极指南 📅 更新时间:2025年6月5日 🏷️ 标签:C | extern关键字 | 多文件编程 | 链接与声明 | 现代C 文章目录 前言🔥一、extern 是什么?&…...

初学 pytest 记录

安装 pip install pytest用例可以是函数也可以是类中的方法 def test_func():print()class TestAdd: # def __init__(self): 在 pytest 中不可以使用__init__方法 # self.cc 12345 pytest.mark.api def test_str(self):res add(1, 2)assert res 12def test_int(self):r…...

AI语音助手的Python实现

引言 语音助手(如小爱同学、Siri)通过语音识别、自然语言处理(NLP)和语音合成技术,为用户提供直观、高效的交互体验。随着人工智能的普及,Python开发者可以利用开源库和AI模型,快速构建自定义语音助手。本文由浅入深,详细介绍如何使用Python开发AI语音助手,涵盖基础功…...

DBLP数据库是什么?

DBLP(Digital Bibliography & Library Project)Computer Science Bibliography是全球著名的计算机科学出版物的开放书目数据库。DBLP所收录的期刊和会议论文质量较高,数据库文献更新速度很快,很好地反映了国际计算机科学学术研…...