【深度学习环境配置】一文弄懂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的并行计算能力,加速模型的训练和推理过程,从而提高效率和性能
深度学习环境配置顺序
- **安装显卡驱动NVIDIA Driver **
- 根据显卡算力和NVIDIA Driver version显卡驱动版本选择适合的CUDA runtime版本
- 安装CUDA runtime,cuDNN可跳过不进行安装
- 安装anaconda
- 创建虚拟环境
- 安装pytorch/tensorflow等深度学习框架
相关文章:
【深度学习环境配置】一文弄懂cuda,cudnn,NVIDIA Driver version,cudatoolkit的关系
【深度学习环境配置】一文弄懂cuda,cuDNN,NVIDIA Driver version,cudatoolkit的关系 NVIDIA Driver version(NVIDIA驱动程序)CUDAcuDNNcudatoolkit深度学习环境配置顺序 今天突然发现配置的环境有些问题,意…...
C语言中的字符与字符串:魔法般的函数探险
前言 在C语言的世界里,字符和字符串是两个不可或缺的元素,它们像是魔法般的存在,让文字与代码交织出无限可能。而在这个世界里,有一批特殊的函数,它们如同探险家,引领我们深入字符与字符串的秘境࿰…...
【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)本身:枚举ÿ…...
使用向量检索和rerank 在RAG数据集上实验评估hit_rate和mrr
文章目录 背景简介代码实现自定义检索器向量检索实验向量检索和rerank 实验 代码开源 背景 在前面部分 大模型生成RAG评估数据集并计算hit_rate 和 mrr 介绍了使用大模型生成RAG评估数据集与评估; 在 上文 使用到了BM25 关键词检索器。接下来,想利用向…...
微信小程序之bind和catch
这两个呢,都是绑定事件用的,具体使用有些小区别。 官方文档: 事件冒泡处理不同 bind:绑定的事件会向上冒泡,即触发当前组件的事件后,还会继续触发父组件的相同事件。例如,有一个子视图绑定了b…...
C++:std::is_convertible
C++标志库中提供is_convertible,可以测试一种类型是否可以转换为另一只类型: template <class From, class To> struct is_convertible; 使用举例: #include <iostream> #include <string>using namespace std;struct A { }; struct B : A { };int main…...
【第二十一章 SDIO接口(SDIO)】
第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...
1688商品列表API与其他数据源的对接思路
将1688商品列表API与其他数据源对接时,需结合业务场景设计数据流转链路,重点关注数据格式兼容性、接口调用频率控制及数据一致性维护。以下是具体对接思路及关键技术点: 一、核心对接场景与目标 商品数据同步 场景:将1688商品信息…...
Leetcode 3577. Count the Number of Computer Unlocking Permutations
Leetcode 3577. Count the Number of Computer Unlocking Permutations 1. 解题思路2. 代码实现 题目链接:3577. Count the Number of Computer Unlocking Permutations 1. 解题思路 这一题其实就是一个脑筋急转弯,要想要能够将所有的电脑解锁&#x…...
蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练
前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1):从基础到实战的深度解析-CSDN博客,但实际面试中,企业更关注候选人对复杂场景的应对能力(如多设备并发扫描、低功耗与高发现率的平衡)和前沿技术的…...
srs linux
下载编译运行 git clone https:///ossrs/srs.git ./configure --h265on make 编译完成后即可启动SRS # 启动 ./objs/srs -c conf/srs.conf # 查看日志 tail -n 30 -f ./objs/srs.log 开放端口 默认RTMP接收推流端口是1935,SRS管理页面端口是8080,可…...
DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI
前一阵子在百度 AI 开发者大会上,看到基于小智 AI DIY 玩具的演示,感觉有点意思,想着自己也来试试。 如果只是想烧录现成的固件,乐鑫官方除了提供了 Windows 版本的 Flash 下载工具 之外,还提供了基于网页版的 ESP LA…...
如何在网页里填写 PDF 表格?
有时候,你可能希望用户能在你的网站上填写 PDF 表单。然而,这件事并不简单,因为 PDF 并不是一种原生的网页格式。虽然浏览器可以显示 PDF 文件,但原生并不支持编辑或填写它们。更糟的是,如果你想收集表单数据ÿ…...
Selenium常用函数介绍
目录 一,元素定位 1.1 cssSeector 1.2 xpath 二,操作测试对象 三,窗口 3.1 案例 3.2 窗口切换 3.3 窗口大小 3.4 屏幕截图 3.5 关闭窗口 四,弹窗 五,等待 六,导航 七,文件上传 …...
