CUDA安装教程(超详细)

article/2025/8/29 23:27:17

目录

前言

cuda的下载及安装

cuda版本

CUDA toolkit Download

cuda安装

cuDNN下载及安装

cuDNN下载

cuDNN配置

参考自


前言

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

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

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

官方教程

CUDA:Installation Guide Windows :: CUDA Toolkit Documentation

cuDNN:Installation Guide :: NVIDIA Deep Learning cuDNN Documentation

cuda的下载及安装

cuda版本

如何判断自己应该下载什么版本的cuda呢?

打开nvidia(桌面右键)->选择左下角的系统信息->组件

第三行,可以看到自己电脑支持的cuda

CUDA toolkit Download

​​​​​kCUDA Toolkit Archive | NVIDIA Developer

点进去,按照如下配置选择,然后点击下载:

最终下载出.exe格式的文件

cuda安装

安装cuda时,第一次会让设置临时解压目录,第二次会让设置安装目录;

临时解压路径,建议默认即可,也可以自定义。安装结束后,临时解压文件夹会自动删除;

安装目录,建议默认即可;

注意:临时解压目录千万不要和cuda的安装路径设置成一样的,否则安装结束,会找不到安装目录的!!!

选择自定义安装

安装完成后,配置cuda的环境变量;

命令行中,测试是否安装成功;

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

同意并继续

自定义安装,精简版本是下载好所有组件,并且会覆盖原有驱动,所以在这里推荐自定义下载

如果你是第一次安装,尽量全选

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

没有选择visual studio,后面说找不到,就返回取消了这个复选框

记住默认的安装路径

在安装了

Ok啦,点击下一步即可

查看环境变量

点击设置-->搜索高级系统设置-->查看环境变量

【如果没有需要自己添加】

系统变量的三四行有两个路径,是自动生成的

还有两个这个

有的小伙伴说后两个变量没有自动生成,没有生成的手动添加就行,注意自己的路径

这两个变量放在下面啦,方便复制

NVCUDASAMPLES_ROOT

NVCUDASAMPLES11_0_ROOT

验证是否安装成功:

运行cmd,输入nvcc --version 即可查看版本号;

set cuda,可以查看 CUDA 设置的环境变量。

nvcc --version
OR
nvcc -V
set cuda

安装成功

cuDNN下载及安装

cuDNN下载

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

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

点击注册

注册成功后的下载界面

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

cuDNN Archive | NVIDIA Developer

选择跟自己的cuda版本适配的cudnn版本

选择如下版本

下载结果是一个压缩包

cuDNN配置

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

下载的文件都在这个目录下:

D:\software\cuda\package

解压后的文件:

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

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

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

拷贝时看到,CUDA 的安装目录中,有和 cuDNN 解压缩后的同名文件夹,这里注意,不需要担心,直接复制即可。cuDNN 解压缩后的同名文件夹中的配置文件会添加到 CUDA安装目录中的同名文件夹中。【此处还是建议还是分别把文件夹的内容复制到对应文件夹中去】

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

添加后出现了这个,不知道会不会有问题

添加至系统变量:

往系统环境变量中的 path 添加如下路径(根据自己的路径进行修改)

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0\bin
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0\include
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0\lib
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0\libnvvp

验证安装是否成功

配置完成后,我们可以验证是否配置成功,主要使用CUDA内置的deviceQuery.exe 和 bandwidthTest.exe:

首先win+R启动cmd,cd到安装目录下的 …\extras\demo_suite,然后分别执行bandwidthTest.exe和deviceQuery.exe(进到目录后需要直接输“bandwidthTest.exe”和“deviceQuery.exe”),应该得到下图:

参考自

【CUDA】cuda安装 (windows版)_haoweixl的博客-CSDN博客_cuda安装

cuda安装教程+cudnn安装教程_sinat_23619409的博客-CSDN博客_cuda安装

CUDA安装教程_Bushka_的博客-CSDN博客_安装cuda

Windows10 系统下cuda安装教程,小白教程 !很详细!!_一个小呆苗的博客-CSDN博客


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

相关文章

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

西门子博客功能指令—序列化 功能描述程序举例仿真测试效果源程序 功能描述 反序列化和序列化的功能刚好相反。反序列化功能主要&#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;这是一…

CAS原理

一、CAS 1.1 CAS概述和作用 CAS的全称是&#xff1a; Compare And Swap(比较相同再交换)。是现代CPU广泛支持的一种对内存中的共享数据进行操作的一种特殊指令。 CAS的作用&#xff1a;CAS可以将比较和交换转换为原子操作&#xff0c;这个原子操作直接由CPU保证。 CAS可以保证…