【保姆级教程】Windows安装CUDA及cuDNN

news2024/11/25 22:26:24

Windows安装CUDA及cuDNN

  • 前言
    • 1. 第一次安装CUDA
    • 2. 第N次安装CUDA
  • 一、 CUDA
    • 1. 查询CUDA版本
    • 2. 下载CUDA
    • 3. 安装CUDA
    • 4. 配置CUDA环境变量
    • 5. 检查CUDA是否安装成功
  • 二、 cuDNN
    • 1. cuDNN版本的查询及下载
    • 2. 安装cuDNN
    • 3. 配置cuDNN的环境变量
    • 4. 检查cuDNN是否安装成功
  • 三、查询CUDA及cuDNN的版本
    • 1. 查询CUDA的版本
    • 2. 查询cuDNN的版本

前言

1. 第一次安装CUDA

在第一次安装CUDA之前,建议大家先看一下目前电脑里都存在哪几个NVIDIA软件,这样即便后续要卸载CUDA,也能区分哪些是本来就存在的,不可卸载,哪些是后来安装的,可以卸载。具体步骤如下:

  • 第一步,在电脑【设置】中搜索【控制面板】并打开。
    在这里插入图片描述
  • 第二步,点击【卸载程序】。
    在这里插入图片描述
  • 第三步,以笔者的电脑来看,下面几个是本来就存在的,那么后续我在装了CUDA之后,如果要卸载的话,这几个就应该保留下来,以防出问题,而其它后续由于安装CUDA而出现在这里的,后续就可以放心卸载。
    在这里插入图片描述

2. 第N次安装CUDA

在电脑的【控制面板】中的【卸载程序】那里保留以下三个软件,然后其它NVIDIA开头的软件可以全部卸载。卸载完之后,就可以安装新的CUDA了。

在这里插入图片描述

一、 CUDA

1. 查询CUDA版本

(1) 查看显卡驱动版本。同时按win和r键,打开运行框,输入nvidia-smi并回车,如下,可以看到笔者的显卡驱动版本为528.02。
在这里插入图片描述

(2) 进入CUDA Toolkit官方文档界面:https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html,如下:
在这里插入图片描述

(3) 向下滑,找到如下表格:
在这里插入图片描述

可以看到,我的显卡驱动版本号为528.02,应该是表格里最高的了,因此,CUDA12.0以下的版本应该都可以安装。这里,笔者打算安装CUDA 11.6版本的。

2. 下载CUDA

1.在确定了安装的CUDA版本后,比如上文确定的CUDA 11.6,就可以进入CUDA下载界面:https://developer.nvidia.com/cuda-downloads,在这个界面,点击【CUDA的历史版本】,如下所示:
在这里插入图片描述

(2) 进入到CUDA的历史版本界面后,往下滑,挑一个11.6.X系列的CUDA Toolkit,比如下图的CUDA Toolkit 11.6.0,然后单击左键。在这里插入图片描述

(3) 进入到CUDA Toolkit 11.6下载界面后,依次做出如下选择,并点击【下载】按钮。
在这里插入图片描述

3. 安装CUDA

  • 第一步,双击CUDA安装包。
    在这里插入图片描述

  • 第二步,直接点击【OK】。
    在这里插入图片描述

  • 第三步,点击【同意并继续】。
    在这里插入图片描述

  • 第四步,选择【自定义安装】并点击【下一步】。
    在这里插入图片描述

  • 第五步,由于我的电脑中没有VS,因此我把VS勾掉,并点击【下一步】。这里一定要注意,如果电脑中没有VS,就要把这个勾去掉,否则容易出错
    在这里插入图片描述

  • 第六步,修改【安装位置】,并点击【下一步】。这里,笔者将其安装在了D盘,节省C盘空间。注意,不管安装在哪里,要记得这个位置,因为后面在配置CUDA环境变量时会用到
    在这里插入图片描述

  • 第七步,等待安装。
    在这里插入图片描述

  • 第八步,点击【下一步】。
    在这里插入图片描述

  • 第九步,安装完成,点击【关闭】即可。
    在这里插入图片描述

4. 配置CUDA环境变量

  • 第一步,在电脑【设置】里搜索环境变量,并点击【编辑系统环境变量】。
    在这里插入图片描述
  • 第二步,在【系统属性】中的【高级】下点击【环境变量】。
    在这里插入图片描述
  • 第三步,查看是否存在CUDA的环境变量,如果没有,则添加,添加的内容就是刚才安装CUDA的位置;如果已经存在环境变量,则不用添加。
    在这里插入图片描述

5. 检查CUDA是否安装成功

  • 第一步,同时按win和r键,调出运行框,并输入cmd,如下:
    在这里插入图片描述
  • 第二步,输入nvcc -V,如果是下面这个样子,就说明安装成功了。否则,就说明哪一步肯定出错了,需要重装CUDA。
    在这里插入图片描述

二、 cuDNN

1. cuDNN版本的查询及下载

(1) 进入cuDNN Download界面:https://developer.nvidia.com/rdp/cudnn-download,如下,如果不是下面这个界面,大概率是没有登录,如果没有账号的话,注册一个即可。总之,登录进来后的界面如下,接着我们需要勾选【同意】,然后点【Archived cuDNN Releases】查看历史cuDNN版本。
在这里插入图片描述

(2) 在cuDNN Archive界面下,查找适合CUDA11.6的cuDNN版本,如下,我选择的是cuDNN v.8.5.0版本,然后单击左键下载对应的压缩包即可。
在这里插入图片描述

2. 安装cuDNN

  • 第一步,解压刚才下载的cuDNN压缩包,得到三个文件夹,如下:
    在这里插入图片描述
    在这里插入图片描述

  • 第二步,复制上面红框中的三个文件夹,并粘贴到CUDA的安装目录下,即刚才装CUDA的位置,如下:
    在这里插入图片描述
    在这里插入图片描述

3. 配置cuDNN的环境变量

  • 第一步,在电脑【设置】里搜索环境变量,并点击【编辑系统环境变量】。
    在这里插入图片描述

  • 第二步,在【系统属性】中的【高级】下点击【环境变量】。
    在这里插入图片描述

  • 第三步,在【系统变量】这里双击【Path】
    在这里插入图片描述

  • 第四步,点击【新建】,然后依次添加下面4个环境变量,如果已经存在则不用添加,如果没有存在,就依次添加。注意,这里填的路径与我们装CUDA的路径是一致的
    在这里插入图片描述

4. 检查cuDNN是否安装成功

  • 第一步,同时按win和r键,调出运行框,并输入cmd,如下:
    在这里插入图片描述

  • 第二步,运行【D:\software\cuda11.6.0\extras\demo_suite】路径下的deviceQuery.exe,检查是否出现了PASS,若出现了PASS,则表示deviceQuery.exe运行成功。
    在这里插入图片描述
    在这里插入图片描述

  • 第三步,运行【D:\software\cuda11.6.0\extras\demo_suite】路径下的bandwidthTest.exe,检查是否出现了PASS,若出现了PASS,则表示bandwidthTest.exe运行成功。
    在这里插入图片描述

  • 第四步,如果deviceQuery.exe和bandwidthTest.exe都运行成功,则表示cuDNN安装成功。

三、查询CUDA及cuDNN的版本

如果后续在使用过程中,忘记CUDA和cuDNN的版本,则可以通过下面的方式找到。

1. 查询CUDA的版本

  • 第一步,同时按win和r键,调出运行框,并输入【cmd】,然后点击【确定】,如下所示:
    在这里插入图片描述
  • 第二步,输入【nvcc -V】,即可查到CUDA版本,如下所示,可以看到笔者的CUDA版本为11.6。
    在这里插入图片描述

2. 查询cuDNN的版本

  • 第一步,在安装CUDA的路径那里,参考下图,找到cudnn_version.h文件,然后用记事本打开。
    在这里插入图片描述

  • 第二步,在cudnn_version.h文件中,查找CUDNN_MAJOR,即可找到对应的cuDNN版本,如下,笔者的cuDNN版本应该为8.5.0。注意,有的cuDNN的版本号在cudnn.h文件了,反正大家把cudnn_version.h和cudnn.h这两个文件都试一下就好了
    在这里插入图片描述

至此,本篇博客完美结束!谢谢大家的阅读!强烈建议大家收藏本篇博客,防止下次找不到~

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

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

相关文章

Linux常见指令理解

查看 Linux 主机 ip 在终端下敲 ssh[ip] ip 为刚才看到的 ifconfig 结果. 如果网络畅通, 将会提示输入用户名密码. 输入即可正确登陆 XShell 下的复制粘贴 复制: ctrl insert (有的 insert 需要配合 fn 来按) 粘贴: shift insert ctrl c / ctrl v 是不行的. Linu…

【C语言刷题——Leetcode10道简单题】

✨作者:平凡的人1 ✨专栏:《小菜鸟爱刷题》 ✨一句话:凡是过往,皆为序章 ✨说明: 过去无可挽回, 未来可以改变 今天是考四六级的日子,不知道大家考得怎么样呀?(反正我是寄了,好多没明…

Vue CLI ref props mixin plugin scoped

3.2. ref 属性 ref被用来给元素或子组件注册引用信息&#xff08;id的替代者&#xff09; 应用在html标签上获取的是真实DOM元素&#xff0c;应用在组件标签上获取的是组件实例对象vc使用方式 打标识&#xff1a;或获取&#xff1a;this.$refs.xxx <template> <di…

Python依据某一文件夹中大量文件的名称复制另一文件夹中的同名文件

本文介绍基于Python语言&#xff0c;针对一个文件夹下大量的Excel表格文件&#xff0c;基于其中每一个文件的名称&#xff0c;从另一个文件夹中找到与这一文件夹中文件同名的文件&#xff0c;并将找到的同名文件复制到第三个文件夹中的方法。 首先&#xff0c;我们来明确一下本…

【网络】深入浅出了解网络世界

HTTP协议 TCP/IP协议族 我们通常使用的网络&#xff0c;是在TCP/IP协议族上运作的。而HTTP协议就是TCP/IP内部的一个子集。 计算机与网络设备之间的通讯需要一定的规则&#xff0c;这种规则就称为协议。 TCP/IP就是互联网上各种协议的总称。 分层管理 TCP/IP 按层次分为…

架构活动中评估需求的五个关注点

从架构活动的整体目标出发&#xff0c;确认需求存在的必要性。很多时候&#xff0c;尤其是大的项目&#xff0c;需求方经常会夹带私货。虽然他们并没有什么恶意&#xff0c;但是这些附加的需求不仅会消耗研发资源&#xff0c;还会增加项目复杂度和规划难度。而最坏的情况&#…

【王道·计算机网络】第四章 网络层【未完】

一、 概述和功能 1.1 网络层功能 主要任务&#xff1a;把分组从源端传到目的端&#xff0c;为分组交换网上的不同主机提供通信服务传输单位&#xff1a;数据报功能&#xff1a; 路由选择与分组转发&#xff0c;即选择最佳路径异构网络互联(依靠路由器)拥塞控制(所有结点都来不…

会议日程——2023第十二届中国PMO大会

2023第十二届中国PMO大会 主题&#xff1a;拥抱变革 展现PMO力量 主办方&#xff1a;PMO评论 签到与入场&#xff1a;人脸识别 时间&#xff1a;6月17-18日 地点&#xff1a;北京蓝调庄园 【邀 请 函】 企业要基业长青就必须持续保持组织活力。企业的内外部环境不会一成不…

Java --- redis实现分布式锁

目录 一、锁的种类 二、分布式锁具备的条件与刚需 三、springbootredisngnix单机实现案例 四、Nginx配置负载均衡 4.1、修改nginx配置文件 4.2、执行启动命令 4.3、启动微服务程序测试 五、使用redis分布式锁 5.1、方法递归重试 5.2、自旋方式 5.3、添加key过期时间&#xff0…

Vue3如何按需引入Element Plus以及定制主题色

1.首先使用指令进行安装 npm install element-plus --save 2.安装按需引入另外两个插件 npm install -D unplugin-vue-components unplugin-auto-import 3.在vite.config.js文件引入以下内容 import { fileURLToPath, URL } from node:urlimport { defineConfig } from vite i…

CloudFlare系列--自定义CDN节点的IP

原文网址&#xff1a;CloudFlare系列--自定义CDN节点的IP_IT利刃出鞘的博客-CSDN博客 简介 说明 本文介绍CloudFlare如何手动指定CDN为CloudFlare的IP地址。 为什么手动指定CDN IP&#xff1f; 自选节点非常重要&#xff0c;原因如下&#xff1a; 国内访问不同CDN节点的速…

Linux vim光标移动/退出命令/撤退操作/文本查找 等命令大全

1 什么是vim&#xff1f; vim是Linux环境下一款强大、高度可定制的文本编辑工具。能够编辑任何的ASCII格式文件&#xff0c;对内容进行创建、查找、替换、修改、删除、复制、粘贴等操作。编写文件时&#xff0c;无需担心目标文件是否存在&#xff0c;若不存在则会自动在内存中…

老Q魔改MACD:拒绝大幅回撤,威力比原版强太多了!

看过老Q历史文章的股友都知道,MACD是一个非常经典且依旧奋战在第一线的顶流指标。我们之前也目前主流通用的参数版本在沪深300上做了回测,17年来获得了累计365%的收益。 然而,整个沪深300大盘在这17年里也涨了超过300%,也就是说,我们的策略也仅仅比拿着不动好上一丢丢而已…

JDK8中的新特性(Lambda、函数式接口、方法引用、Stream)

文章目录 1. Java8新特性&#xff1a;Lambda表达式1.1 关于Java8新特性简介1.2 冗余的匿名内部类1.3 Lambda 及其使用举例1.4 语法1.5 关于类型推断 2. Java8新特性&#xff1a;函数式(Functional)接口2.1 什么是函数式接口2.2 如何理解函数式接口2.3 举例2.4 Java 内置函数式接…

高压功率放大器在换流阀冷却系统均压电极结垢超声导波中的应用

实验名称&#xff1a;换流阀冷却系统均压电极结垢超声导波检测方法研究 研究方向&#xff1a;无损检测 测试目的&#xff1a; 为了探究超声导波检测的灵敏度&#xff0c;本文构建了换流阀冷却系统均压电极结垢检测模型&#xff0c;详细分析了不同厚度水垢与声波信号的交互过…

【c++】哈希---unordered容器+闭散列+开散列

1.unordered系列关联式容器 在C98中&#xff0c;STL提供了底层为红黑树结构的一系列关联式容器&#xff0c;在查询时效率可达到 logN&#xff0c;即最差情况下需要比较红黑树的高度次&#xff0c;当树中的节点非常多时&#xff0c;查询效率也不理想。最好的查询是&#xff0c;进…

FPGA开发基本流程详解

FPGA是一种可编程逻辑器件&#xff0c;与传统的硬连线电路不同&#xff0c;它具有高度的可编程性和灵活性。FPGA的设计方法包括硬件设计和软件设计两部分&#xff0c;硬件设计包括FPGA芯片电路、存储器、输入输出接口电路等等&#xff0c;软件设计则是HDL程序开发&#xff0c;以…

openCV 第四篇 角点检测、图像特征、图片拼接

本文原本打算直接简单介绍一下harris和sift&#xff0c;之后进行特征匹配&#xff0c;来一波图像拼接。 想来想去还是先介绍下原理吧&#xff0c;虽然没人看QAQ。可以直接点击右侧目录跳转到代码区。 本文可以完成&#xff1a; 角点检测 和 图像特征提取(就几行代码) 以及进…

Win32子窗口创建,子窗口回调函数,消息堆栈,逆向定位子窗口消息处理过程

本专栏上一篇文章中我们讲解了Win32程序入口识别&#xff0c;定位回调函数&#xff0c;具体事件处理的定位&#xff0c;这一章节中我们来讲解一下子窗口的创建&#xff0c;子窗口的回调函数&#xff0c;并且逆向分析子窗口消息处理过程。 文章目录 一.子窗口按钮的创建- 创建子…

charge pump的分析与应用

春节前最后一更&#xff0c;提前祝大家新春快乐&#xff0c;阖家安康&#xff0c;工作顺利&#xff01; 定义&#xff1a; 电荷泵是利用电容的充放电来实现电压的转换的&#xff0c;输入回路和输出回路轮流导通。通过调节占空比来调节输出电压。 它们能使输入电压升高或降低&…