超详细Anconda pytorch cuda cuDNN安装及介绍(李沐老师视频环境)

零、准备知识阶段

⇲ 显卡驱动、CUDA、cuDNN之间联系以及安装配置

在配置PyTorch的过程中,显卡驱动、CUDA、cuDNN三者之间的关系、作用以及在众多版本中如何搭配一直困扰着我。虽然网上资料很多,但各说其词,即使最终迈过种种坑成功运行,但脑子里还是一团乱麻。所以回过头来看NVIDIA的官方文档,一方面记录配置过程防止遗忘,另一方面也希望能够帮助有和我一样困惑的童鞋。本人能力有限,如有不妥之处,希望批评指正。

显卡驱动、CUDA、cuDNN介绍

显卡驱动

显卡驱动是封装成软件的程序,硬件厂商根据操作系统编写的配置文件。安装成功后成为了操作系统中的一小块代码,它是硬件所对应的软件,有了它,计算机就可以与显卡进行通信,驱使其工作。如果没有显卡驱动,显卡就无法工作。

CUDA

官网introduction:其是由NVIDIA发明的并行计算平台以及编程模型,它可以显著的提高GPU的计算性能。官网introduction链接:https://docs.nvidia.com/cuda/cuda-installation-guide-microsoft-windows/index.html

cuDNN

官网综述:NVIDIA的cuDNN是针对深度神经网络计算的一个GPU加速库,为标准例程提供了高度优化的实现,比如向前、向后卷积,池化,规范化和激活层。其是NVIDIA Deep Learning SDK的一部分。官网综述链接:https://docs.nvidia.com/deeplearning/sdk/cudnn-install/有一个比喻能够更形象的说明CUDA、cuDNN两者的关系:CUDA看作是一个工作台,上面配有很多工具,如锤子、螺丝刀等。cuDNN是基于CUDA的深度学习GPU加速库,有了它才能在GPU上完成深度学习的计算。它就相当于工作的工具,比如它就是个扳手。但是CUDA这个工作台买来的时候,并没有送扳手。想要在CUDA上运行深度神经网络,就要安装cuDNN,就像你想要拧个螺帽就要把扳手买回来。这样才能使GPU进行深度神经网络的工作,工作速度相较CPU快很多。比喻出自:https://www.jianshu.com/p/622f47f94784

二、显卡驱动+CUD+cuDNN安装以及版本选择说明

2.1 显卡驱动安装(一般自己电脑都已经安装好了的)

已经安装显卡驱动进行如下步骤:

cuda的版本一定要根据你自己的显卡型号来决定,所以这里记一下自己显卡驱动的版本先右键桌面点击英伟达控制面板

 

点击左下角系统信息

查看你的驱动程序版本(要记住了,一会就根据这个来选择cuda的版本)

 

看一下自己的驱动版本符合哪些cuda版本,你可以使用所有低于你驱动程序版本的cudatoolkit比如我显卡驱动是5.46.12,那么我可以下载最新的CUDA12.3注意:比你驱动程序版本高的cudatoolkit绝对不能使用https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html

未安装显卡驱动进行如下步骤:

 

进入NVIDIA驱动下载官网⇲ https://www.nvidia.cn/Download/index.aspx?lang=cn根据自己显卡名称对应选择,点击搜索然后下载。

 

自己选择好下载以后按照默认步骤安装即可之后按照上面步骤看一下显卡驱动版本对应的cuda版本即可。

2.2 CUDA安装

介绍

CUDA安装官网描述:运行CUDA应用程序的两个必要条件是

(1)系统至少拥有一个支持CUDA编程的GPU硬件;

(2)能够兼容CUDA的驱动程序版本。

通过参考官网文档我对下图表格的理解:

(1)NVDIA发布的每一个CUDA工具包都有一个最低版本的显卡驱动限制,比如红色框内是目前最新版本的CUDA 10.2.89,Windows下其支持的显卡驱动最低版本是441.22,也就是说低于441.22的显卡驱动都无法安装CUDA 10.2.89。

(2)显卡驱动是向后兼容的,新的版本兼容旧的版本。

(3)对于指定的一个CUDA工具包仍然适用于后续NVIDIA发布的更高版本驱动。举例说明:文章中我的显卡驱动版本是445.75>=441.22所以目前我安装的显卡驱动都能与表中的CUDA任何一个版本兼容。假如你显卡驱动版本是400.36>= 398.26,但<411.31,所以CUDA 9.2 (9.2.148 Update 1)以下(包含9.2)CUDA版本都能兼容,以上则不能。注意:比你驱动程序版本高的cudatoolkit绝对不能使用https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html

 

安装步骤

下载CUDA

在以下链接选择自己系统环境,会自动推荐https://developer.nvidia.com/cuda-downloads?target_os=Windows&target_arch=x86_64&target_version=11&target_type=exe_local

 

打开developer.nvidia.com/cuda-downloads,打开有点慢

 

选择Windows

 

本地安装

 

接下来就会出现对应的安装包

 

安装或许会有点慢,取决你网速

 

安装CUDA

下载完成后,我们双击安装

 

选择路径

 

等待解压

 

进入安装流程

 

等待检查兼容性

 

安装的话,基本上都是 默认 选项

 

等待安装即可

 

中途会黑一下,这是正常情况! 安装成功 检查是否安装成功 nvidia-smi

 

2.3 cuDNN安装

通过1、2安装完显卡驱动、CUDA后,接下来下载配置cuDNN。cuDNN官网下载链接:⇲ https://developer.nvidia.com/rdp/cudnn-archive由于我的CUDA是12.3所以我这里下载的是第一个(这里需要注册登录,自己注册登录一下即可)

 


按照官网文档配置cuDNN:将下载解压好的cuDNN三个路径下的文件分别对应拷贝到CUDA安装目录对应文件中

 

至此,CUDA、cuDNN配置完成,接下来验证是否配置成功。

2.4 测试

配置完成后,我们可以验证是否配置成功,主要使用CUDA内置的deviceQuery.exe 和 bandwithTest.exe:首先win+R启动cmd,输入 cd C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.3\extras\demo_suite>,然后分别执行.\bandwidthTest.exe和.\deviceQuery.exe,应该得到下图:执行bandwidthTest.exe

 

如果以上两步都返回了Result=PASS,恭喜你配置成功。至此,配置显卡驱动、CUDA、cuDNN以及说明三者之间的关系介绍已结束。

三、pytorch安装

3.1 在线安装方式

PyTorch官网下载链接⇲ https://pytorch.org/到对应的官网,输入配置项,复制命令

 

将上面的 pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121复制到命令框,然后回车静静等待安装。

 

出现Successful installed torch=1.4.0 torchvision=0.5.0说明PyTorch安装成功

 

(上面我安装过程没有保留截图,随便用其他图替代)

3.2 离线安装方式

⇲ https://blog.csdn.net/qq_18620653/article/details/105420158

3.3 测试GPU版本PyTorch

依次输入python、import torch、import torchvision、torch.version print(torch.cuda.is_available())如果不报错,并且返回torch版本,以及True。恭喜你PyTorch GPU版本安装成功。

 

也可以用李沐老师的方法

 

至此,PyTorch配置过程到此结束,希望能够帮助到你。

参考文章:

⇲ 配置显卡驱动、CUDA、cuDNN以及说明三者之间的关系

李沐大佬安装视频:⇲ Windows 下安装 CUDA 和 Pytorch 跑深度学习 - 动手学深度学习v2_哔哩哔哩_bilibili

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

快充协议的奥秘:工作原理与特性比较

文章目录 一、 前言二、快充协议1.公有协议1.1 PD协议介绍发展史USB-IF组织PPS快充协议 1.2 QC协议介绍发展史 1.3 PE协议介绍 2.私有协议2.1 VOOC 闪充2.2 FCP/SCP 闪充2.3 FlashCharge闪充2.4 MIChargeTurbo闪充2.5 AFC闪充2.6 mCharge快充 三、总结 一、 前言 最近&#xf…

【深度学习】数据归一化/标准化 Normalization/Standardization

目录 一、实际问题 二、归一化 Normalization 三、归一化的类型 1. Min-max normalization (Rescaling) 2. Mean normalization 3.Z-score normalization (Standardization) 4.非线性归一化 4-1 对数归一化 4-2 反正切函数归一化 4-3 小数定标标准化&#xff08;Demi…

echarts中绘制3D三维地球

简介 echarts中的三维地球&#xff0c;需要用到世界地图json数据&#xff0c;我把json文件放到我的资源中&#xff0c;有需要的自行下载。 安装插件 // 安装echats npm install echarts --save npm install echarts-gl --save 项目中引用 1&#xff0c;引入安装的echarts…

Http请求Cookie失效问题

Http请求Cookie失效问题记录 一、问题现象 在开发功能的过程中&#xff0c;业务依赖cookie进行取之&#xff0c;项目进行交互时会对前端http请求携带的cookies进行解析操作&#xff0c;但在自测调试对过程中出现账户的授权失效的报错问题。 二、问题排查 用arthas进行代码方…

【国产MCU】-CH32V307-GPIO控制:输入与输出

GPIO控制:输入与输出 文章目录 GPIO控制:输入与输出1、GPIO简单介绍2、驱动API介绍3、GPIO配置代码实现3.1 GPIO配置为输出3.2 GPIO配置为输入CH32V307的GPIO口可以配置成多种输入或输出模式,内置可关闭的上拉或下拉电阻,可以配置成推挽或开漏功能。GPIO口还可以复用成其他…

【24美赛思路已出】2024年美赛A~F题解题思路已出 | 无偿自提

A题&#xff1a;资源可用性和性别比例 问题一&#xff1a; 涉及当灯鱼种群的性别比例发生变化时&#xff0c;对更大的生态系统产生的影响。为了分析这个问题&#xff0c;可以采用以下的数学建模思路&#xff1a;建立灯鱼种群模型&#xff1a; 首先&#xff0c;建立一个灯鱼种群…

冰冻天气恰逢春运,“观冰精灵”化身电力供应守护者

据中国路网&#xff0c;截至2月1日14时&#xff0c;受降雪及路面结冰影响&#xff0c;河北、山西、内蒙古、黑龙江、江苏、安徽、河南、山东、西藏、陕西、宁夏、甘肃、新疆共封闭路段66个&#xff08;涉及44条高速公路、5条普通国道、5条普通省道&#xff09;&#xff0c;关闭…

基于大数据的淘宝电子产品数据分析的设计与实现

&#xff08;1&#xff09;本次针对开发设计系统并设置了相关的实施方案&#xff0c;利用完整的软件开发流程进行分析&#xff0c;完成了设置不同用户的操作权限和相关功能模块的开发&#xff0c;最后对系统进行测试。 &#xff08;2&#xff09;框架可以帮助程序开发者快速构建…

2024 Flutter 重大更新,Dart 宏(Macros)编程开始支持,JSON 序列化有救

说起宏编程可能大家并不陌生&#xff0c;但是这对于 Flutter 和 Dart 开发者来说它一直是一个「遗憾」&#xff0c;这个「遗憾」体现在编辑过程的代码修改支持上&#xff0c;其中最典型的莫过于 Dart 的 JSON 序列化。 举个例子&#xff0c;目前 Dart 语言的 JSON 序列化高度依…

PHP集成开发 -- PhpStorm 2023

PhpStorm 2023是一款强大的PHP集成开发环境&#xff08;IDE&#xff09;&#xff0c;旨在提高开发人员的生产力和代码质量。以下是关于PhpStorm 2023软件的详细介绍&#xff1a; 首先&#xff0c;PhpStorm 2023提供了丰富的代码编辑功能&#xff0c;包括语法高亮、自动补全、代…

计算机网络自顶向下Wireshark labs-HTTP

我直接翻译并在题目下面直接下我的答案了。 1.基本HTTP GET/response交互 我们开始探索HTTP&#xff0c;方法是下载一个非常简单的HTML文件 非常短&#xff0c;并且不包含嵌入的对象。执行以下操作&#xff1a; 启动您的浏览器。启动Wireshark数据包嗅探器&#xff0c;如Wir…

版本管理git及其命令介绍-附带详细操作

前言 在版本管理时代之前&#xff0c;人们写软件的方式如下图1所示 图1 无版本管理的代码 其坏处就是软件版本随着时间越来越多&#xff0c;每个版本修改了什么内容&#xff0c;修改了哪些文件&#xff0c;如果没有详细记录也不知道。这样久会导致如果我们想回退到某个版本内…

LLM(3) | 自注意力机制 (self-attention mechanisms)

LLM(3) | 自注意力机制 (self-attention mechanisms) self-attention 是 transformer 的基础&#xff0c; 而 LLMs 大语言模型也都是 transformer 模型&#xff0c; 理解 self-attention, 才能理解为什么 LLM 能够处理好上下文关联性。 本篇是对于 Must-Read Starter Guide t…

Java学习day26:和线程相关的Object类的方法、等待线程和唤醒线程(知识点详解)

声明&#xff1a;该专栏本人重新过一遍java知识点时候的笔记汇总&#xff0c;主要是每天的知识点题解&#xff0c;算是让自己巩固复习&#xff0c;也希望能给初学的朋友们一点帮助&#xff0c;大佬们不喜勿喷(抱拳了老铁&#xff01;) 往期回顾 Java学习day25&#xff1a;守护线…

(十二)常见Linux命令——磁盘分区、进程线程、系统定时任务

文章目录 1、磁盘分区类命令1.1、df (disk free 空余硬盘)查看磁盘空间使用情况1.2、fdisk 查看分区1.3、mount/umount 挂载/卸载 2、进程线程类命令2.1、ps (process status 进程状态)查看当前系统进程状态2.2、kill终止进程 3、系统定时任务命令3.1、crond服务管理3.2、cront…

使用ngrok内网穿透

没有服务器和公网IP&#xff0c;想要其他人访问自己做好的网站&#xff0c;使用这款简单免费的内网穿透小工具——ngrok&#xff0c;有了它轻松让别人访问你的项目~ 一、下载ngrok 官网地址&#xff1a;ngrok | Unified Application Delivery Platform for Developers&#x…

前端开发者应该知道的TypeScript可区分联合

作为一个前端开发者&#xff0c;你的工作不仅仅是移动像素&#xff0c;前端的大部分复杂性来自于处理你的应用程序可能处于的所有不同状态。 它可能是加载数据&#xff0c;等待表单被填写&#xff0c;或者发送一个遥测事件 - 或者同时进行这三项。 如果不能正确处理状态&…

【PostgreSQL内核学习(二十五) —— (DBMS存储空间管理)】

DBMS存储空间管理 概述块&#xff08;或页面&#xff09;PageHeaderData 结构体HeapTupleHeaderData 结构 表空间表空间的作用&#xff1a;表空间和数据库关系表空间执行案例 补充 —— 模式&#xff08;Schema&#xff09; 声明&#xff1a;本文的部分内容参考了他人的文章。在…

深度学习入门笔记(七)卷积神经网络CNN

我们先来总结一下人类识别物体的方法: 定位。这一步对于人眼来说是一个很自然的过程,因为当你去识别图标的时候,你就已经把你的目光放在了图标上。虽然这个行为不是很难,但是很重要。看线条。有没有文字,形状是方的圆的,还是长的短的等等。看细节。纹理、颜色、方向等。卷…

C++学习Day01之namespace命名空间

目录 一、程序及输出1.1 命名空间用途&#xff1a; 解决名称冲突1.2 命名空间内容1.3 命名空间必须要声明在全局作用域下1.4 命名空间可以嵌套命名空间1.5 命名空间开放&#xff0c;可以随时给命名空间添加新的成员1.6 命名空间可以是匿名的1.7 命名空间可以起别名 二、分析与总…