Windows系统下CUDA、cuDNN与PyTorch的更新与安装全攻略

news2024/11/30 8:30:33

Windows系统下CUDA、cuDNN与PyTorch的更新与安装全攻略

文章目录

  • Windows系统下CUDA、cuDNN与PyTorch的更新与安装全攻略
    • 一、引言
    • 二、CUDA、cuDNN与PyTorch-GPU介绍
    • 三、安装准备
      • 1. 查看支持的CUDA版本
      • 2. 查看已安装的CUDA版本
      • 3. 查看支持的PyTorch版本
    • 四、卸载旧版CUDA
    • 五、下载并安装新版CUDA
    • 六、下载并安装cuDNN
    • 七、安装pytorch并验证PyTorch与CUDA的兼容性
    • 八、安装过程中的一些问题
      • Nsight Visual Studio Edition 安装失败
    • 九、后记

一、引言

随着人工智能技术的不断进步,深度学习已经成为当今科技领域的重要支柱,尤其在图像识别、自然语言处理等多个领域展现了其强大的能力。为了充分发挥深度学习的潜力,高效的计算能力显得尤为重要,而图形处理单元(GPU)正是提供这一能力的关键硬件。NVIDIA的CUDA技术,作为利用GPU进行通用计算的先锋,为深度学习的发展注入了强大的动力。而与之相辅相成的cuDNN库,则为深度学习应用提供了优化支持。PyTorch,作为当今热门的深度学习框架,其与CUDA和cuDNN的无缝集成,更是让深度学习模型的训练和推理如虎添翼。

然而,对于许多初学者和研究者来说,如何正确安装并配置这些工具,以便能够高效地进行深度学习工作,可能是一个不小的挑战。本文将深入探讨CUDA、cuDNN与PyTorch之间的关系,并为读者提供一份详尽的安装与配置指南。我们的目标是帮助读者建立起一个稳定、高效的深度学习环境,从而能够专注于模型的开发与创新,无需在环境配置上花费过多精力。通过本文,读者将能够更好地理解这些工具如何协同工作,以及如何将它们集成到自己的深度学习项目中。

二、CUDA、cuDNN与PyTorch-GPU介绍

1.CUDA (Compute Unified Device Architecture):
CUDA是NVIDIA推出的一个并行计算平台和编程模型,它允许开发者使用NVIDIA的GPU进行高性能计算。CUDA提供了一套丰富的API,使得开发者能够轻松地编写在GPU上运行的并行代码,从而显著提高计算性能。
官网:https://developer.nvidia.com/
2.CUDA Toolkit:
这是一个包含CUDA编译器、调试器、性能分析工具等的开发套件,用于帮助开发者构建、优化和调试CUDA应用程序。CUDA Toolkit是开发CUDA程序的基础。
3.cuDNN (CUDA Deep Neural Network library):
cuDNN是NVIDIA专门为深度神经网络设计的一套加速库。它基于CUDA,针对深度学习算法中的常见操作(如卷积、池化、归一化等)进行了高度优化,能够显著提升深度学习应用的运行效率。
4.PyTorch-GPU:
PyTorch是一个流行的深度学习框架,支持动态计算图,使得深度学习模型的构建和训练变得更加灵活和高效。PyTorch-GPU版本则是专为GPU加速设计的,能够充分利用CUDA和cuDNN的优势,提高深度学习模型的训练速度和性能。
官网:https://pytorch.org/

简单来说,CUDA为GPU并行计算提供了基础平台和编程接口;CUDA Toolkit为开发者提供了开发CUDA程序所需的工具和资源;cuDNN针对深度学习应用进行了专门优化,提高了运行效率;而PyTorch-GPU则是一个基于CUDA和cuDNN的深度学习框架,使得深度学习应用的开发变得更加简单和高效。

在安装的过程中我还发现了 nvidia nsight systemnvidia nsight compute 这两个软件,有兴趣的请阅读 CUDA编程 - Nsight system & Nsight compute 的安装和使用 - 学习记录

三、安装准备

下面表格中是我的系统操作环境版本

配置项详细信息
操作系统Windows10(64bit)
Python版本3.9.13
GPUNVIDIA GeForce GTX 1650
显卡驱动版本 (Driver Version)555.99
CUDA版本 (CUDA Version)12.1.1
包管理工具pip
PyTorch版本2.3.0

1. 查看支持的CUDA版本

  • 通过NVIDIA控制面板查看:右键桌面打开NVIDIA控制面板,依次点击“帮助”-“系统信息”-“组件”。
    在这里插入图片描述

  • 通过cmd 打开控制台,输入命令nvidia-smi查看:在命令提示符(cmd)中输入nvidia-smi
    在这里插入图片描述

这两种方法效果一样,查看到的都是本机支持的最高版本的CUDA,它是可以向下兼容的。一般我们不需要安装最高版本,而是通过下面的结合 pytoch 版本来选择。我的系统最高支持12.3版本的驱动。

2. 查看已安装的CUDA版本

在命令提示符中输入nvcc -V
在这里插入图片描述
可以看到我现在安装的是11.6版本的,现在我想将其更新为12.1。

3. 查看支持的PyTorch版本

访问PyTorch官网(https://pytorch.org/),根据系统配置选择合适的PyTorch版本,并注意其对应的CUDA版本。
在这里插入图片描述
从上图中可以看到,目前官方支持的最新稳定版本为 pytorch2.3.0 + CUDA12.1。而我们上面查看到的本地实际上可以支持到 12.3,但是 pytorch 只支持到 12.1,所以我们 CUDA 只安装到 12.1 的版本就够了.

四、卸载旧版CUDA

1.控制面板卸载
进入“控制面板”或“设置”-“应用”,卸载所有含CUDA字样 的程序。
在这里插入图片描述

2.删除环境变量
“此电脑-右键-属性-高级系统设置”进入环境变量的 path 中,删除旧版本CUDA的相关路径。
在这里插入图片描述

3.删除残留文件
进入C:\Program Files\,删除旧版本的CUDA文件夹。
在这里插入图片描述
上面3个文件夹可以全部删除也可以只删除其子文件夹,因为后面更新的也是安装到该路径。

五、下载并安装新版CUDA

1. 进入NVIDIA官网(https://www.nvidia.cn/Download/index.aspx?lang=cn)下载最新的驱动程序进行更新
在这里插入图片描述
在这里插入图片描述
点击搜索后点击下载即可。下载完成后安装至“C:\Program Files\NVIDIA\NVIDIA Display Driver”路径下面。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
安装完成之后再次输入nvidia-smi,可以看到我们的 Driver Version和CUDA Version: 12.5发生了变化,现在CUDA支持的最高版本为12.5。
在这里插入图片描述
奇怪的是安装完成之后“C:\Program Files\NVIDIA\”下面并没有“NVIDIA Display Driver”这个文件夹通过电脑管家查看安装位置位于
“C:\Program Files\WindowsApps\NVIDIACorp.NVIDIAControlPanel_8.1.966.0_x64__56jybvy8sckqj”路径下面。
不过无伤大雅,能正常使用即可。

2.下载CUDA安装包
访问 NVIDIA官网(https://developer.nvidia.com/cuda-toolkit-archive),选择与PyTorch版本兼容的CUDA版本进行下载。下面两个应该都支持,这边我下载的是12.1.1
在这里插入图片描述
接着根据配置选择即可(需要登录NVIDIA账号)。
在这里插入图片描述
下载之后点击安装,路径选择默认路径即可(临时解压路径,建议默认即可,也可以自定义。安装结束后,临时解压文件夹会自动删除)。安装目录选择“C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.1”
在这里插入图片描述
选择自定义安装并且如果你是第一次安装,尽量全选;如果你是第n次安装,尽量只选择第一个,不然会出现错误
(当然,强烈建议选择自定义,因为我们只卸载了 CUDA 所以只需要安装 CUDA即可。这也能够省去很多麻烦)
ps:如果是首次安装且没有安装Visual Studio,请选择自定义安装并去掉“Visual Studio Integration”选项。
在这里插入图片描述
在这里插入图片描述
耐心等待…
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

安装完成。当然,细心的朋友发现我上面高亮的部分是没有安装的,这个由于我安装的时候报错取消安装了,有需要的可以去"C:\Users\yxn\AppData\Local\Temp\cuda\nsight_vse\nsight_vse"下面点击"nsight_visual_studio_edition-windows-x86_64-2023.1.1.23089_32673672.msi"单独安装即可.

3. 安装后检查

  • 检查C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.1\bin下是否存在nvcc.exe
  • 检查C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.1\extras\CUPTI\lib64下是否存在cupti64_XXX.dll
  • 在命令行中输入nvcc -V 查看安装的CUDA版本。
    在这里插入图片描述
    如上图所示,cuda已经安装成功。

六、下载并安装cuDNN

1.下载cuDNN安装包
推荐:访问 NVIDIA官网(https://developer.nvidia.com/rdp/cudnn-archive),注册登录后下载与CUDA版本相对应的cuDNN。
在这里插入图片描述

其它:访问 https://developer.nvidia.com/cudnn-downloads (下载的到的是最新版本的exe文件,不推荐)
在这里插入图片描述

2.安装cuDNN
将下载的cuDNN压缩包解压到CUDA的安装路径下并覆盖相应文件。
将下载到的压缩包解压到 cuda 的安装路径C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.1下并覆盖。
cd到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.1\extras\demo_suite,然后分别执行

bandwidthTest.exe
deviceQuery.exe

在这里插入图片描述
在这里插入图片描述
若都能成功运行且没有报错就恭喜你cuDNN安装成功了.

3.检查环境变量

确保以下路径已添加到环境变量的path中:

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.1\bin
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.1\lib
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.1\libnvvp
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.1\include
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.1\extras\CUPTI\lib64

参考:
CUDA卸载&&重装
windows cuda更新教程

七、安装pytorch并验证PyTorch与CUDA的兼容性

1. 安装PyTorch
使用PyTorch官网提供的安装命令进行安装。PyTorch官网(https://pytorch.org/)

pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121

太慢了,可以使用下面地址借助第三方软件从源下载:

https://download.pytorch.org/whl/cu121/torch-2.3.1%2Bcu121-cp39-cp39-win_amd64.whl
https://download.pytorch.org/whl/cu121/torchvision-0.18.1%2Bcu121-cp39-cp39-win_amd64.whl
https://download.pytorch.org/whl/cu121/torchaudio-2.3.1%2Bcu121-cp39-cp39-win_amd64.whl

  • 各版本pytorch下载地址 https://download.pytorch.org/whl/torch_stable.html

执行安装:

pip install "torch-2.3.1+cu121-cp39-cp39-win_amd64.whl" "torchvision-0.18.1+cu121-cp39-cp39-win_amd64.whl"  "torchaudio-2.3.1+cu121-cp39-cp39-win_amd64.whl"

再次执行

pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
pip list # 查看已安装的包

在这里插入图片描述
2.验证效果
在Python环境中运行以下代码进行验证:

import torch

# 查看PyTorch是否支持CUDA
print(torch.cuda.is_available())
# 查看可用的CUDA设备数量
print(torch.cuda.device_count())
# 查看PyTorch对应的CUDA版本号
print(torch.version.cuda) 
# 返回当前设备索引
print(torch.cuda.current_device())
# 返回gpu的名字,设备索引默认从0开始
print(torch.cuda.get_device_name(0))

如果输出显示CUDA可用,且设备数量大于0,同时CUDA版本号与安装的CUDA版本一致,则表示安装成功。

在这里插入图片描述
至此,最新版本的pytorch+CUDA安装成功!!!开始愉快的学习吧!

推荐: 动手学深度学习-李沐

八、安装过程中的一些问题

Nsight Visual Studio Edition 安装失败

首先确保CUDA相关组件卸载干净,不然使用 Uninstall -Tool 工具进行卸载。或者安装时候取消勾选"nsight vse",安装完成之后单独安装.
在这里插入图片描述

参考:
NVIDIA安装程序失败-Nsight Visual Studio Edition失败解决办法
安装CUDA失败的情况nsight visual studio edition失败

想同时安装tensflow-gpu版本的,请按照cuda11.6,12.x不支持。

九、后记

通过本文的指南,希望大家能够顺利地在Windows系统下安装和配置CUDA、cuDNN与PyTorch,从而能够充分利用GPU的并行计算能力进行深度学习模型的训练和推理。在实际使用过程中,如果遇到任何问题或挑战,建议查阅官方文档或寻求社区的帮助。同时,也欢迎各位留言分享自己的安装经验和技巧,共同推动深度学习技术的发展。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【企业家必看】解锁财富新机遇:二人订单共享模式

在这个充满变革与创新的时代,我们有幸向您介绍一种全新的商业模式——二人订单共享模式。这不仅是一次商业创新,更是一次财富与价值共享的革命。 终身消费,终身收益 只需一次499元的终身消费,您即可成为会员。这意味着&#xff0…

游戏试玩站打码平台系统可运营的任务网源码

安装说明 1.恢复数据; 2.数据连接库配置路径:protected\config\mail.php 文件中修改第60行 (记得不要用记事本修改,否则可能会出现验证码显示不了问题,建议用Notepad) 3.浏览器访问输入 127.0.0.2 显示界…

dvwa SQl注入中级、高级(使用sqlmap渗透)

sql注入中级 发现是一个表单提交数据 点提交 改为2,再点提交 burp抓包 发现是以post的方式传递 这里尝试以两种方式解题 (1)-r “txt”的方式 python sqlmap.py -r ""C:\Users\fuqia\Desktop\1.txt"" -p id --batch …

为CAP面板天添加简单的认证功能 C#|.net

做过后端的比较熟悉,CAP面板有个界面,可以通过域名加cap访问: 但是这个面板直接通过url就可以访问了。 Hangfire Dashboard有自己的面板,可以使用用户名和密码做简单的认证。 LogDashboard也有自己的面板,可以使用用户名和密码做简单的认证。 如下图: 但是CAP的面板是…

nodejs湖北省智慧乡村旅游平台-计算机毕业设计源码00232

摘 要 随着科学技术的飞速发展,社会的方方面面、各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,旅游行业当然也不能排除在外。智慧乡村旅游平台是以实际运用为开发背景,运用软件工程开发方法,采…

JAVA代码审计之文件上传代码审计

1 文件上传简介 1.1 什么是任意文件上传漏洞 任意文件上传漏洞常发生在文件上传功能中,由于后端代码中没有严格限制用户上传的文件,导致攻击者可以上传带有恶意攻击代码的JSP 脚本到目标服务器,进而执行脚本,以达到控制操纵目标…

cesium 渐变虚线效果 PolylineDashMaterialProperty

cesium中有虚线材质PolylineDashMaterialProperty,可以在这个材质的基础上结合uv设置每个顶点的透明度,就能实现渐变的效果了。 一、原理:在glsl中结合uv设置每个顶点的透明度 vec2 st materialInput.st; material.alpha fragColor.a * (1…

【SpringCloud】创建新工程

前言 本文使用的是jdk17,mysql8。 以下用两个服务做演示: 订单服务:提供订单ID,获取订单详细信息。 商品服务:提供商品ID,获取商品详细信息。 对于订单服务和商品服务分别建立数据库: -- 订单服…

Javaweb避坑指北(持续更新)

内容较多可按CtrlF搜索 0.目录 1.获取插入数据后自增长主键的值 2.Controller中返回给ajax请求字符串/json会跳转到xxx.jsp 3.ajax请求获得的json无法解析 4.在Controller中使用ServletFileUpload获取的上传文件为null 5.莫名其妙报service和dao里方法的错误 6.ajax请求拿…

期权费的核心是什么

期权费的核心 在涉足股票期权投资的领域时,投资者们往往会将焦点首先锁定在期权费这一显性成本上。然而,实际操作中,一个更为核心且决定性的考量因素是,目标股票是否具备通过个股期权策略进行买入的潜在价值。特别是,…

NFTScan 正式上线 Sei NFTScan 浏览器和 NFT API 数据服务

2024 年 6 月 12 号,NFTScan 团队正式对外发布了 Sei NFTScan 浏览器,将为 Sei 生态的 NFT 开发者和用户提供简洁高效的 NFT 数据搜索查询服务。NFTScan 作为全球领先的 NFT 数据基础设施服务商,Sei 是继 Bitcoin、Ethereum、BNBChain、Polyg…

数据安全“大考”,双一流高校们来交卷!

又是一年高考落幕 埋头题山卷海的考生们 终于迎来“大解放”! 在数字化浪潮中 众高校面临的重要考试 ——“数据安全大考”还在继续 如何作答? 这些双一流高校交出高分答卷! 数据分类分级如何开展落地? 难点分析&#xff1…

python游标卡尺什么梗

python游标卡尺什么梗?下面给大家介绍一下这个梗: 因为 python 是通过缩进来区分代码块的(而不是{}或者是其他符号),而不是像其他程序语言,缩进仅仅为了可读性。导致打印出来的 python 代码(比…

神经气体生长算法【GNG】

当德国计算神经学家 Bernd Fritzke 在其 1995 年的开创性论文中提出后来被称为神经气体生长(GNG)的算法时,机器学习还是一个相对较新的领域,并且受到实际神经科学的极大启发。 当时,神经科学正处于一个突破性的时代—…

目标检测:将yolo标注的txt文本转为VOC标注的xml文件

1、准备工作 目标检测数据的标注分为两种格式: xml 解释性标签,左上角右下角的坐标txt 记事本文件,类别x,y中心坐标w,h的相对值 需要准备的数据有: 其中images为图像数据,labels为txt文本信息…

【Python】已解决报错:NameError: name ‘xxx‘ is not defined

【Python】已解决报错:NameError: name ‘xxx‘ is not defined 😎 作者介绍:我是程序员洲洲,一个热爱写作的非著名程序员。CSDN全栈优质领域创作者、华为云博客社区云享专家、阿里云博客社区专家博主。 🤓 同时欢迎大…

C++学习笔记(23)——二叉树进阶

系列文章 http://t.csdnimg.cn/QDR3y 目录 系列文章[TOC](目录) 1. 二叉树的优势2. 二叉搜索树概念3. 二叉搜索树操作1. 二叉搜索树的查找2. 二叉搜索树的插入——地址链接重设3. 二叉搜索树的删除——地址链接重设 4. 二叉搜索树的应用——以key为载体,承载复杂信…

618家用智能投影仪推荐:这个高性价比品牌不容错过

随着科技的不断进步,家庭影院的概念已经从传统的大屏幕电视逐渐转向了更为灵活和便携的家用智能投影仪。随着618电商大促的到来,想要购买投影仪的用户们也开始摩拳擦掌了。本文将从投影仪的基础知识入手,为您推荐几款性价比很高的投影仪&…

QGroupbox,Grid Layout,button 水平延伸 布局

实验 sizePolicy水瓶延伸 拖入一个groupbox控件 在groupbox控件中拖入一个grid layout 控件 然后拖入3个pushButton 使其水平排列, 设置button3的 sizePolicy 水平延展 为1 效果

工程项目管理系统:高效、专业的工程管理软件

在当今快速发展的工程行业,有效的项目管理是确保项目成功的关键。鸿鹄工程项目管理系统,基于Spring Cloud、Spring Boot、Mybatis、Vue和ElementUI技术栈,提供了一个全面、高效的解决方案,以应对复杂的工程项目管理挑战。 项目背景…