【CUDA】cuda安装 (windows版)

article/2025/8/28 23:42:48

【CUDA】cuda安装 (windows10版)

    • 一、前言
        • 官方教程
    • 二、安装工具的准备
        • 1. CUDA toolkit Download
        • 2. cuDNN Download
    • 三、 CUDA 安装与配置过程
        • 测试环境是否安装成功
    • 四、cuDNN配置
        • 1.解压
        • 2.添加至系统变量
      • 参考博客:

本次安装参考了网上许多教程,结合自己的需求与理解,写下此篇博客,仅做本人总结使用。。

一、前言

windows10 版本安装 CUDA ,首先需要下载两个安装包

  • CUDA toolkit(toolkit就是指工具包)
  • cuDNN

注:cuDNN 是用于配置深度学习使用

官方教程

CUDA:https://docs.nvidia.com/cuda/cuda-installation-guide-microsoft-windows/index.html

cuDNN:https://docs.nvidia.com/deeplearning/sdk/cudnn-install/index.html#installwindows

二、安装工具的准备

1. CUDA toolkit Download

https://developer.nvidia.com/cuda-toolkit-archive

官网安装:

https://developer.nvidia.com/cuda-downloads?target_os=Windows&target_arch=x86_64

在这里插入图片描述

在这里插入图片描述

GA = General Availability,通用版本,指软件的通用版本。
RC=Release Candidate,含义 是"发布候选版",它不是最终的版本,而是最终版(RTM=Release To Manufacture)之前的最后一个版本
在这里插入图片描述
官网说明文档,
https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html

在这里插入图片描述

CUDA的版本是跟显卡型号有关还是驱动有关?

一般是驱动版本决定了能用的CUDA版本的上限,比如新版的显卡驱动可以支持老的CUDA runtime。但是老的显卡可能无法更新到最新的显卡驱动,比如Fermi显卡只能装到391驱动,因此只能用到CUDA9.1。除此之外,显卡硬件与CUDA compute capability相关,当然编译时也可以指定streaming multiprocessor。新的架构支持更多特性就是了。

最终本人下载的

在这里插入图片描述

2. cuDNN Download

cuDNN地址如下,不过要注意的是,我们需要注册一个账号,才可以进入到下载界面。大家可以放心注册的。

https://developer.nvidia.com/rdp/cudnn-download

在这里插入图片描述

注册成功后的下载界面

在这里插入图片描述

可以使用下面网址,查看适配的 cuDNN

https://developer.nvidia.com/rdp/cudnn-archive

在这里插入图片描述

在这里插入图片描述

本人下载的版本如下:

在这里插入图片描述

三、 CUDA 安装与配置过程

  1. 双击“exe文件”,选择下载路径(推荐默认路径)

在这里插入图片描述

  1. 安装选项

如果你是第一次安装,尽量全选
如果你是第n次安装,尽量只选择第一个,不然会出现错误

在这里插入图片描述

不要选Visual Studio Integration,即使选了也不能成功安装

在这里插入图片描述
如果本机的驱动版本(当前版本)小于cuda对应的版本(新版本),则选择,否则不选。如果当前版本小于新版本,并且不覆盖安装,之后电脑会频繁蓝屏或死机

  1. 记住安装位置,tensorflow要求配置环境

在这里插入图片描述

重点提醒:一定要记住这个路径,把这个路径保留下来,后面我们还会用到!!!

  1. 安装进行
    在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述

  1. 安装完成

在这里插入图片描述

查看系统变量中是否添加了路径,如果没有需要自己添加

在这里插入图片描述

测试环境是否安装成功

运行cmd,输入nvcc --version 即可查看版本号;
set cuda,可以查看 CUDA 设置的环境变量。

nvcc --version
set cuda

在这里插入图片描述

在这里插入图片描述

四、cuDNN配置

1.解压

cuDNN叫配置更为准确,我们先把下载的 cuDNN 解压缩,会得到下面的文件:

  1. cuDNN 解压缩后的文件
    在这里插入图片描述

下载后发现其实cudnn不是一个exe文件,而是一个压缩包,解压后,有三个文件夹,把三个文件夹拷贝到cuda的安装目录下

CUDA 的安装路径在前面截图中有,或者打开电脑的环境变量查看,默认的安装路径如下:

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.1

后面那个v11.1是你自己的版本号

  1. CUDA 安装目录文件:
    在这里插入图片描述
    拷贝时看到,CUDA 的安装目录中,有和 cuDNN 解压缩后的同名文件夹,这里注意,不需要担心,直接复制即可。cuDNN 解压缩后的同名文件夹中的配置文件会添加到 CUDA安装目录中的同名文件夹中。

  2. 拷贝成功后的文件
    在这里插入图片描述

现在大家应该可以理解,cuDNN 其实就是 CUDA 的一个补丁而已,专为深度学习运算进行优化的。然后再参加环境变量

2.添加至系统变量

  1. 往系统环境变量中的 path 添加如下路径(根据自己的路径进行修改)
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.1\binC:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.1\includeC:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.1\libC:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.1\libnvvp
  1. 验证安装是否成功

配置完成后,我们可以验证是否配置成功,主要使用CUDA内置的deviceQuery.exe 和 bandwidthTest.exe:
首先win+R启动cmd,cd到安装目录下的 …\extras\demo_suite,然后分别执行bandwidthTest.exe和deviceQuery.exe,应该得到下图:

在这里插入图片描述

在这里插入图片描述

参考博客:

https://blog.csdn.net/mao_hui_fei/article/details/104246466

https://www.pianshen.com/article/8647746165/

https://blog.csdn.net/weixin_45494025/article/details/100746025

https://blog.csdn.net/u011473714/article/details/95042856


http://chatgpt.dhexx.cn/article/MAf3Afxv.shtml

相关文章

CUDA安装教程(超详细)

目录 前言 cuda的下载及安装 cuda版本 CUDA toolkit Download cuda安装 cuDNN下载及安装 cuDNN下载 cuDNN配置 参考自 前言 windows10 版本安装 CUDA ,首先需要下载两个安装包 CUDA toolkit(toolkit就是指工具包)cuDNN 注&#x…

西门子博图功能指令(反序列化)

西门子博客功能指令—序列化 功能描述程序举例仿真测试效果源程序 功能描述 反序列化和序列化的功能刚好相反。反序列化功能主要&#xff1a;反向转换 PLC 数据类型 (UDT)、STRUCT 或 ARRAY of <数据类型> 的顺序表示并填充所有内容。 该指令可以逐步将已转换数据的多个顺…

js的序列化和反序列化

js的序列化&#xff08;即js中的object转化为字符串&#xff09; ① 使用toJSONStringvar last obj.toJSONString(); // 将JSON对象转化为JSON字符串 ② 使用stringifyvar last JSON.stringify(obj); // 将JSON对象转化为JSON字符串js的反序列化&#xff08;即js中JSON字…

@responseBody + 序列化

为什么转载responseBody这个注解的博客呢&#xff1f;因为我在看序列化的时候&#xff0c;就在考虑&#xff0c;Spring中使用responseBody的Json序列化&#xff0c;为啥不用最常用的Serializable序列化呢&#xff1f;直接转换为二进制流不好吗&#xff1f;&#xff1f;&#xf…

Django序列化器

一、序列化器作用 1、数据格式转换&#xff1a; 序列化&#xff1a; 对象 -> 字典 反序列化&#xff1a; 字典 -> 对象&#xff08;OrderedDict&#xff09; 2、校验参数合法性&#xff1b; 3、保存和修改数据&#xff1b; 二、定义序列化器 通过继承rest_framework.seri…

Qt知识点梳理 —— 自定义数据结构序列化与反序列化

文章目录 定义 Qt中序列化与反序列化 序列化&#xff1a; 反序列化&#xff1a; 自定义数据结构序列化与反序列化 项目结构 数据结构信息 执行效果 项目源码 开发环境 定义 序列化&#xff1a;将对象或数据结构转换为二进制序列 反序列化&#xff1a;二进制序列转换…

序列化作用

没有implements Serializable&#xff0c;你就不能通过rmi(包括ejb)提供远程调用。 serialization 允许你将实现了Serializable接口的对象转换为字节序列&#xff0c;这些字节序列可以被完全存储以备以后重新生成原来的对象。 serialization不但可以在本机做&#…

PHP反序列化

定义 序列化&#xff08;串行化&#xff09;&#xff1a;是将变量转换为可保存或传输的字符串的过程&#xff1b; 反序列化&#xff08;反串行化&#xff09;&#xff1a;就是在适当的时候把这个字符串再转化成原来的变量使用&#xff1b; 这两个过程结合起来&#xff0c;可以轻…

Spark序列化简介

参考文章&#xff1a;Spark序列化 spark之kryo 序列化 Spark序列化入门 1. 什么是序列化和序列化? 序列化是什么 序列化的作用就是可以将对象的内容变成二进制, 存入文件中保存反序列化指的是将保存下来的二进制对象数据恢复成对象 序列化对对象的要求 对象必须实现 Serial…

谈谈序列化的作用

文章目录 1. 写在前面2. 问题阐述3. 解释3.1 一些不够完整的解释3.2 一种完整的解释3.2.1 去地址3.2.2 节省空间 4. 小节参考链接 1. 写在前面 我们应该都用过各种序列化&#xff08;serialization&#xff09;的方法&#xff08;如Python中的pickle.dumps&#xff09;&#x…

Java 之 Serializable 序列化和反序列化的概念,作用的通俗易懂的解释

遇到这个 Java Serializable 序列化这个接口&#xff0c;我们可能会有如下的问题 a&#xff0c;什么叫序列化和反序列化 b&#xff0c;作用。为啥要实现这个 Serializable 接口&#xff0c;也就是为啥要序列化 c&#xff0c;serialVersionUID 这个的值到底是在怎么设置的&#…

cas 原理分析

CAS 原理分析 1、了解java中锁的类型 1.1 悲观锁(Pessimistic Lock) 顾名思义&#xff0c;就是很悲观&#xff0c;假定会发生并发冲突&#xff0c;屏蔽一切可能违反数据完整性的操作&#xff0c;每次去拿数据的时候都认为别人会修改&#xff0c;所以每次在拿数据的时候都会上…

JAVA中的CAS算法

java 中的线程之间的栈空间是相互独立&#xff0c;堆空间是共享的 V&#xff1a;内存值就是主内存中i值 A&#xff1a;预估值(期望值)就是子线程拿到主内存的值&#xff08;读取到高速缓存中的值&#xff09; B&#xff1a;更新值是子线程拿到i值后,修改i的值 假设有两个线程…

面试:CAS算法原理

1、什么是CAS&#xff1f; CAS&#xff1a;Compare and Swap&#xff0c;即比较再交换。 jdk5增加了并发包java.util.concurrent.*&#xff0c;其下面的类使用CAS算法实现了区别于synchronouse同步锁的一种乐观锁。JDK 5之前Java语言是靠synchronized关键字保证同步的&#x…

CAS原理详解

CAS介绍 CAS全称是Compare And Swap&#xff0c;它的实现和它的字面意思一样&#xff0c;先比较后交换&#xff0c;它是CPU硬件层面的一种指令&#xff0c;从CPU层面能保证"比较并更新"这一段操作的原子性。 与synchronized关键字比较不同是synchronized是一种悲观锁…

CAS算法与ABA问题

锁是用来做并发最简单的方式&#xff0c;当然代价也是最高的。 独占锁是一种悲观锁&#xff0c;synchronized就是一种独占锁&#xff1b;它假设最坏的情况&#xff0c;并且只有在确保其它线程不会造成干扰的情况下执行&#xff0c;会导致其它所有需要锁的线程挂起直到持有锁的…

CAS算法-实现原理

目录 CAS是什么&#xff1f; CAS解决了什么问题&#xff1f; CAS存在什么问题&#xff1f; CAS有哪些应用场景&#xff1f; cas的实现 最后 CAS是什么&#xff1f; CAS的全称为Compare and swap 比较并交换。CAS又经常被称为乐观锁&#xff0c;主要的三个变量&#xff0c;内存值…

并发策略-CAS算法

对于并发控制而言&#xff0c;我们平时用的锁&#xff08;synchronized&#xff0c;Lock&#xff09;是一种悲观的策略。它总是假设每一次临界区操作会产生冲突&#xff0c;因此&#xff0c;必须对每次操作都小心翼翼。如果多个线程同时访问临界区资源&#xff0c;就宁可牺牲性…

深入理解CAS算法原理

转载自 深入理解CAS算法原理 1、什么是CAS&#xff1f; CAS&#xff1a;Compare and Swap&#xff0c;即比较再交换。 jdk5增加了并发包java.util.concurrent.*,其下面的类使用CAS算法实现了区别于synchronouse同步锁的一种乐观锁。JDK 5之前Java语言是靠synchronized关键字保证…

CAS操作原理

1、什么是CAS&#xff1f; CAS&#xff1a;Compare and Swap&#xff0c;即比较再交换。 jdk5增加了并发包java.util.concurrent.*,其下面的类使用CAS算法实现了区别于synchronouse同步锁的一种乐观锁。JDK 5之前Java语言是靠synchronized关键字保证同步的&#xff0c;这是一…