超详细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

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

idea项目如何上传gitee

1.先创建仓库&#xff08;nonono&#xff01;&#xff01;&#xff01;idea上传会自动创建仓库&#xff01;&#xff01;&#xff01;&#xff01;&#xff09; 2.从gitee上面clone下来&#xff08;nonono&#xff01;&#xff01;&#xff01;&#xff01;这个.git文件也是自动…

Flutter 各种Demo效果合集

Flutter 各种Demo实现效果&#xff1a; github&#xff1a;GitHub - PangHaHa12138/FlutterDemo: Flutter 各种Demo效果合集 1&#xff1a;2种 仿朋友圈 效果,顶部拉伸 和 不拉伸 2&#xff1a;仿抖音上下滑动视频播放 3&#xff1a;视频直播&#xff08;使用的电视台的m3u…

事件分发机制:从OnTouchListener开始,按钮变色的Demo

要彻底弄清楚事件分发机制&#xff0c;先要明白OnTouchListener的作用。 我们看下Android 1.6上&#xff0c;OnTouchListener的代码定义&#xff0c;源码在线地址&#xff1a;Android 1.6 sdk4 View.java 可以看到&#xff0c;OnTouchListener就是View类中的一个public接口&am…

如何读论文

如何读论文 0. 目的 单篇文章从头读到尾&#xff0c;可以&#xff1b; 世界上那么多篇文章&#xff0c; 都这样读&#xff0c; 时间上划不来。 适合你的文章就那么一小撮。 paper 的八股文结构&#xff1a; titleabstractintromethodexpconclusion 1. 第一遍 海选&#…

运用 StringJoiner 高效的拼接字符串

运用 StringJoiner 高效的拼接字符串 package com.zhong.stringdemo;import java.util.ArrayList; import java.util.StringJoiner;public class Test {public static void main(String[] args) {ArrayList<String> s new ArrayList<>();s.add("11");s.…

CEC2013(python):五种算法(OOA、WOA、GWO、DBO、HHO)求解CEC2013(python代码)

一、五种算法简介 1、鱼鹰优化算法OOA 2、鲸鱼优化算法WOA 3、灰狼优化算法GWO 4、蜣螂优化算法DBO 5、哈里斯鹰优化算法HHO 二、5种算法求解CEC2013 &#xff08;1&#xff09;CEC2013简介 参考文献&#xff1a; [1] Liang J J , Qu B Y , Suganthan P N , et al. Pro…

跟着cherno手搓游戏引擎【19】抽象纹理

引入&#xff1a; 导入stb_image: GitHub - nothings/stb: stb single-file public domain libraries for C/C 下载复制stb_image.h的内容&#xff08;8000多行&#xff09;&#xff0c;然后粘到如图位置 stb_image.cpp: #include"ytpch.h" #define STB_IMAGE_IM…

04、全文检索 -- Solr -- 管理 Solr 的 core(使用命令和图形界面创建、删除 core,以及对core 目录下的各文件进行详细介绍)

目录 管理 Solr 的 core创建 Core方式1&#xff1a;solr 命令创建演示&#xff1a;使用 solr 命令创建 Core&#xff1a;演示&#xff1a;命令删除 Core&#xff08;彻底删除&#xff09; 方式2&#xff1a;图形界面创建Web控制台创建CoreWeb控制台删除 Core&#xff08;未彻底…

python使用fabric库

目录 一&#xff1a;介绍 二&#xff1a;远程命令执行 三&#xff1a;文件上传&#xff0c;下载 四&#xff1a;执行多台服务器命令 一&#xff1a;介绍 Fabric是一个Python库&#xff0c;用于简化SSH连接和自动化任务。它提供了一个简单的API来执行远程命令、上传和下载文…

软件工程(最简式总结)

目录 第一章:概述 1.软件危机的表现原因 2.常见的软件开发方法包括&#xff1a; 3.软件工程基本原则 4.软件工程三要素 5.设计模式的分类 6.针对变换型数据流设计步骤 7.针对事务型数据流设计步骤 第二章&#xff1a;软件过程 1.软件生命周期 2.软件过程模型 &…

【牛B得一塌糊涂】窗口归一化技术,改进医学图像的分布外泛化能力

窗口归一化技术&#xff0c;改进医学图像的分布外泛化能力 提出背景WIN、WIN-WIN、无参数归一化、特征级别数据增强如何提升分布外的泛化&#xff1f; 总结子问题1: 医学图像中的局部特征表示不足子问题2: 训练数据与新场景数据分布不一致子问题3: 模型在分布外数据上泛化能力不…

链表——C语言——day17

链表 链表是一种常见的重要的数据结构。它是动态地进行存储分配的一种结构。在用数组存放数据时&#xff0c;必须事先定义固定的长度&#xff08;即元素个数&#xff09;。链表则没有这种缺点&#xff0c;它根据需要开辟内存单元。 链表有一个“头指针“变量&#xff0c;图中…