WIN10安装CUDA保姆级教程[2023.5.7更新]

news2024/11/16 15:55:29

本系列分步记录在win10上搭建CUDA+cudnn+pytorch+YOLOv5+tensorrt等深度学习架构部署及系统搭建,欢迎关注追更!

目录

0.了解CUDA

1.注意事项

 1.1显卡驱动

 1.2确定关联性

1.2.1 显卡驱动与cuda的对应关系:

1.2.2 pytorch与cuda的对应关系

2.cuda安装

2.1、访问CUDA官网、配置自己的下载安装包

2、安装

2.3、配置环境变量(如果想在VS中使用CUDA就得进行这一步)

3、验证 

3.1、查看CUDA版本

3.2、查看CUDA的环境变量配置情况


0.了解CUDA

       CUDA(Compute Unified Device Architecture)是英伟达公司开发的基于自家显卡的、基于新的并行编程模型和指令集架构的通用计算架构,让用户通过此架构充分利用N卡的GPU进行复杂高效的并行计算,如进行深度学习。

1.注意事项

 1.1显卡驱动

桌面空白处右击打开NVDIA控制面板,查询是否出现如下图中控制面板的版本和显卡型号,如有则说明安装了显卡驱动。

        而没有则需要安装,下载方法如下:

NVIDIA 驱动程序下载https://www.nvidia.cn/Download/index.aspx?lang=cn

选择一款与服务器显卡适配的驱动,安装指南参考NVIDIA显卡驱动。

 1.2确定关联性

用到cuda比较多的是深度学习场景,那么大概路绕不cudnn、pytorch等深度学习框架的部署,那么就要注意了,正所谓“你的cuda不只是你显卡的,还是cudnn和pytorch的”,这是因为cuda可不能两眼一抹黑就下载最新的,而是要看你的显卡驱动与cuda、pytorch与cuda的对应关系:

1.2.1 显卡驱动与cuda的对应关系:

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

 值得注意的是,每个版本的显卡驱动都有对应的CUDA Driver Version。显卡型号和CUDA Driver Version型号可以通过nvidia-smi查看,CUDA可以向下兼容,以我为例,可以安装12.1以下的版本:

更多版本关系看这里:

CUDA ToolkitLinux x86_64 Driver VersionWindows x86_64 Driver Version
CUDA 11.6 Update 2>=510.47.03>=511.65
CUDA 11.6 Update 1>=510.47.03>=511.65
CUDA 11.6 GA>=510.39.01>=511.23
CUDA 11.5 Update 2>=495.29.05>=496.13
CUDA 11.5 Update 1>=495.29.05>=496.13
CUDA 11.5 GA>=495.29.05>=496.04
CUDA 11.4 Update 4>=470.82.01>=472.50
CUDA 11.4 Update 3>=470.82.01>=472.50
CUDA 11.4 Update 2>=470.57.02>=471.41
CUDA 11.4 Update 1>=470.57.02>=471.41
CUDA 11.4.0 GA>=470.42.01>=471.11
CUDA 11.3.1 Update 1>=465.19.01>=465.89
CUDA 11.3.0 GA>=465.19.01>=465.89
CUDA 11.2.2 Update 2>=460.32.03>=461.33
CUDA 11.2.1 Update 1>=460.32.03>=461.09
CUDA 11.2.0 GA>=460.27.03>=460.82
CUDA 11.1.1 Update 1>=455.32>=456.81
CUDA 11.1 GA>=455.23>=456.38
CUDA 11.0.3 Update 1>= 450.51.06>= 451.82
CUDA 11.0.2 GA>= 450.51.05>= 451.48
CUDA 11.0.1 RC>= 450.36.06>= 451.22
CUDA 10.2.89>= 440.33>= 441.22
CUDA 10.1 (10.1.105 general release, and updates)>= 418.39>= 418.96
CUDA 10.0.130>= 410.48>= 411.31
CUDA 9.2 (9.2.148 Update 1)>= 396.37>= 398.26
CUDA 9.2 (9.2.88)>= 396.26>= 397.44
CUDA 9.1 (9.1.85)>= 390.46>= 391.29
CUDA 9.0 (9.0.76)>= 384.81>= 385.54
CUDA 8.0 (8.0.61 GA2)>= 375.26>= 376.51
CUDA 8.0 (8.0.44)>= 367.48>= 369.30
CUDA 7.5 (7.5.16)>= 352.31>= 353.66
CUDA 7.0 (7.0.28)>= 346.46>= 347.62

1.2.2 pytorch与cuda的对应关系

pytorch与cuda的对应关系如下:

官网:Previous PyTorch Versions | PyTorch
CUDA Toolkit版本及可用PyTorch对应关系总结(参考官网)

CUDAToolkit版本可用PyTorch版本
7.50.4.1 ,0.3.0, 0.2.0,0.1.12-0.1.6
8.01.1.0,1.0.0 ,0.4.1
9.01.1.0,1.0.1, 1.0.0,0.4.1
9.21.7.1,1.7.0,1.6.0,1.5.1,1.5.0,1.4.0,1.2.0,0.4.1
10.01.2.0,1.1.0,1.0.1 ,1.0.0
10.11.7.1,1.7.0,1.6.0,1.5.1,1.5.0, 1.4.0,1.3.0
10.21.12.1,1.12.0,1.11.0,1.10.1,1.10.0,1.9.1,1.9.0,1.8.1,1.8.0,1.7.1,1.7.0,1.6.0,1.5.1,1.5.0
11.01.7.1,1.7.0
11.11.8.0
11.31.12.1,1.12.0,1.11.0,1.10.1,1.10.0,1.9.1,1.9.0,1.8.1,1.8.0
11.61.13.1,1.13.0,1.12.1,1.12.0
11.71.13.1,1.13.0

cuda版本确定后,pytorch要依赖此cuda版本,因为pytroch安装跟cuda对应的,比如下图,torch1.11.0只适配cuda10.2、11.3;不适配cuda10.1等其他版本cuda。

而如果是你之后要用到YOLO的话,此时最好就得下载下来,看看其中的requirements.txt文件,其中也对pytorch版本提出了要求:

我这是 yolov5,其他版本的下载自己去github上拉就好。

2.cuda安装

CUDA toolkit下载

CUDA toolkit下载地址: CUDA Toolkit Archive | NVIDIA Developer

由于不确定最新版的cuda是否可以与pytorch兼容,而且最新的cuda在后续的深度学习中也容易出问题,毕竟在这套架构里并不是每一个软件都能跟cuda进行同步更新并保证可以适配,例如截止到2023年5月7日,cuda已经最新版本是12.1,但pytouch最新版本能够兼容的cuda只有11.8.

为保险起见,我们这里安装11.1的cuda,正如我上面所说,显卡驱动是能够向下兼容低版本的cuda.

2.1、访问CUDA官网、配置自己的下载安装包

因为要下载11.1,所以点击链接:CUDA Toolkit 11.6 Update 1 Downloads | NVIDIA Developer

之后,要找到CUDA之前的存档,具体流程看图:

 

2、安装

       双击安装包,选择合适的路径,即可安装(要记住这个路径,因为可能要配置环境变量)。接下来的过程,用图说话。如果有其他分区,请勿装在C盘,下图只是演示说明。

 

 

如果先前进行了cuda的安装,现在要重新安装的,需要将之前的版本卸载之后重新安装,重新安装时不再选择自定义安装,而是选择精简安装。

若之前还未进行过cuda的安装,现在的安装选择自定义:

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

记住以下安装位置,tensorflow要求配置环境

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

 

 

 

 安装完成后,鼠标右键此电脑->属性->高级系统设置->环境变量,查看系统变量即可看到红色框选的两项。

或者直接在电脑搜索编辑系统环境变量打开。

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

2.3、配置环境变量(如果想在VS中使用CUDA就得进行这一步)

我们要是为VS配置CUDA,那就得将剩下的5个环境变量补齐。 点击新建,分别输入变量名和变量值,点击确定。大家可以类比我的CUDA安装路径和环境变量的关系进行配置(不是照搬!不是照搬!不是照搬!):%CUDA_PATH%代表的就是CUDA_PATH的路径,我的是C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.1。 

CUDA_SDK_PATH #变量名

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.1 #变量值



CUDA_LIB_PATH #变量名

%CUDA_PATH%\lib\x64 #变量值



CUDA_BIN_PATH #变量名

%CUDA_PATH%\bin #变量值



CUDA_SDK_BIN_PATH #变量名

%CUDA_SDK_PATH%\bin\win64 #变量值



CUDA_SDK_LIB_PATH #变量名

%CUDA_SDK_PATH%\common\lib\x64 #变量值

至此,CUDA的安装就完成了。 

3、验证 

3.1、查看CUDA版本

键盘win+R键,输入cmd,并回车,打开CMD命令框。输入如下命令 :

nvcc --version

 只要显示了CUDA的版本,就算成功了!   (保险起见多验证几步) 

3.2、查看CUDA的环境变量配置情况

 键盘win+R键,输入cmd,并回车,打开CMD命令框。输入如下命令 :

set cuda

 如果没有进行步骤中2.3的变量添加的话,那么得到的界面信息应该是下面这样

C:\Users\as>nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2021 NVIDIA Corporation
Built on Mon_May__3_19:41:42_Pacific_Daylight_Time_2021
Cuda compilation tools, release 11.1, V11.1
Build cuda_11.1.r11.3/compiler.29920130_0


C:\Users\as>set cuda
CUDA_PATH=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.1
CUDA_PATH_V11_3=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.1

cuda安装成功!

参考文章:

https://blog.csdn.net/GenuineMonster/article/details/116596761

https://blog.csdn.net/RunAtWorld/article/details/124282176?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522168337979916800211560390%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=168337979916800211560390&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_click~default-1-124282176-null-null.142^v86^insert_down1,239^v2^insert_chatgpt&utm_term=win10%E5%AE%89%E8%A3%85cuda&spm=1018.2226.3001.4187

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

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

相关文章

NLP大模型微调原理

1. 背景 LLM (Large Language Model) 大型语言模型,旨在理解和生成人类语言,需要在大量的文本数据上进行训练。一般基于Transformer结构,拥有Billion以上级别的参数量。比如GPT-3(175B),PaLM(560B)。 NLP界发生三件大事&#xff…

ChatGLM-6B模型微调实战(以 ADGEN (广告生成) 数据集为例,序列长度达 2048)

kingglory/ChatGLM-6B 项目地址 1 介绍 对于 ChatGLM-6B 模型基于 P-Tuning v2 的微调。P-Tuning v2 将需要微调的参数量减少到原来的 0.1%,再通过模型量化、Gradient Checkpoint 等方法,差不多需要 7GB或则8GB 显存即可运行。 2 环境 2.1 python …

【软考-中级】系统集成项目管理工程师-计算题

系统集成项目管理工程师 二、计算题题型一:EMV(预期货币价值)题型二:加权系统题型三:自制和外贸决策——采购管理题型四:沟通渠道——沟通管理题型五:投资回收期、回收率题型六:进度…

metinfo_6.0.0 任意文件读取漏洞复现

一.漏洞简介 MetInfo是一套使用PHP和Mysql开发的内容管理系统。 MetInfo 6.0.0~6.1.0版本中的 old_thumb.class.php文件存在任意文件读取漏洞。攻击者可利用漏洞读取网站上的敏感文件。 二.漏洞影响 MetInfo 6.0.0 MetInfo 6.1.0 三.漏洞分析 在\MetInfo6.0.0\app\system\i…

推开“任意门”,华为全屋智能正在实现一代科幻迷的童年梦想

科幻作家亚瑟查理斯克拉克有句名言,“任何足够先进的科技,都和魔法无异”。 提到空间魔法,很多科技爱好者或科幻迷会想到哆啦A梦的“任意门”。通过那扇门,可以进入全新的世界,去任何想去的地方,是不少人在…

最新研究,GPT-4暴露了缺点!无法完全理解语言歧义!

夕小瑶科技说 原创作者 |智商掉了一地、Python自然语言推理(Natural Language Inference,NLI)是自然语言处理中一项重要任务,其目标是根据给定的前提和假设,来判断假设是否可以从前提中推断出来。然而,由于…

远程连接阿里云mysql数据库教程(SSH方式和宝塔面板方式)

一、SSH方式 1.首先登录mysql数据库 mysql -u root -p 输入密码后: 第一次连接的话该密码可以通过宝塔面板来重置: (1)输入 bt: (2)输入 7 即可重置mysql密码 2.查询mysql数据库中的user表 …

如何快速给pdf添加水印?

如何快速给pdf添加水印?在当今数字化时代,任何工作都是在电脑上完成了,PDF文档已成为人们日常工作中必不可少的一部分。虽然pdf文件具有较强的稳定性,不能被别人轻易的编辑修改,有时我们还需要提高pdf文件的安全性&…

AlphaFold的极限:高中生揭示人工智能在生物信息学挑战中的缺陷

人工智能程序AlphaFold (AlphaFold2开源了,不是土豪也不会编程的你怎么蹭一波?),通过预测蛋白质结构解决了结构生物信息学的核心问题。部分AlphaFold迷们声称“该程序已经掌握了终极蛋白质物理学,其工作能力已超越了最初的设计”。…

Doc2Bot: 达摩院推出多类型文档对话数据集

一、概述 title:Doc2Bot: Accessing Heterogeneous Documents via Conversational Bots 论文地址:Doc2Bot: Accessing Heterogeneous Documents via Conversational Bots - ACL Anthology 数据地址(大概5千多轮开源数据)&#…

用 Spark 预测回头客

访问【WRITE-BUG数字空间】_[内附完整源码和文档] 至此“淘宝双 11 数据分析与预测课程案例”所需要的环境配置完成。另外实际操作中发现在案例教程中存在一些小问题,比如教程中 Eclipse 版本为 3.8,但是在配置 Tomcat Server 时又要求配置 v8.0 版本&a…

【分布式技术专题】「授权认证体系」OAuth2.0协议的入门到精通系列之授权码模式

这里写目录标题 OAuth2.0是什么OAuth2.0协议体系的Roles角色OAuth定义了四个角色资源所有者资源服务器客户端授权服务器 传统的客户机-服务器身份验证模型的问题 协议流程认证授权授权码 OAuth2.0是什么 OAuth 2.0是用于授权的行业标准协议。OAuth 2.0专注于简化客户端开发人员…

从【连接受限】看Android网络

从连接受限看Android网络 现象摸索从通知开始是Handler发的通知看看NetworkStateTrackerHandler NetworkMonitor做了什么NetworkMonitor是一个状态机CaptivePortalProbeResult从何而来连接受限的直接原因 嗅探是怎样进行的ProbeThread 回过头看看InternalHanderregisterNetwork…

GRE 隧道协议

1.GRE协议简介 GRE(General Routing Encapsulation ,通用路由封装)是对某些网络层协议(如IP和IPX)的数据报文进行封装,使这些被封装的报文能够在另一网络层协议(如IP)中传输。此外 GRE协议也可以作为VPN的第三层隧道协议连接两个…

ES6之迭代器

文章目录 前言迭代器1.原生具备Iterator接口的数据(可用for...of遍历)2.工作原理3.自定义遍历数据 总结 前言 迭代器(Iterator) for…of遍历 迭代器 迭代器是一种接口,为各种不同数据结构提供统一的访问机制。任何数…

c++ 11标准模板(STL) std::vector (八)

定义于头文件 <vector> template< class T, class Allocator std::allocator<T> > class vector;(1)namespace pmr { template <class T> using vector std::vector<T, std::pmr::polymorphic_allocator<T>>; }(2)(C17…

智慧工地烟火识别算法 opencv

智慧工地烟火识别系统应用pythonopencv深度学习算法模型技术分析前端视频信息&#xff0c;智慧工地烟火识别算法模型主动发现工地或者厂区现场区域内的烟雾和火灾苗头及时进行告警。OpenCV的全称是Open Source Computer Vision Library&#xff0c;是一个跨平台的计算机视觉处理…

前端三剑客 - HTML

前言 前面都是一些基础的铺垫&#xff0c;现在就正式进入到web开发环节了。 我们的目标就是通过学习 JavaEE初阶&#xff0c;搭建出一个网站出来。 一个网站分成两个部分&#xff1a; 前端&#xff08;客户端&#xff09; 后端&#xff08;服务器&#xff09; 通常这里的客户端…

ASP.NET Core Web API用户身份验证

一、JWT介绍 ASP.NET Core Web API用户身份验证的方法有很多&#xff0c;本文只介绍JWT方法。JWT实现了服务端无状态&#xff0c;在分布式服务、会话一致性、单点登录等方面凸显优势&#xff0c;不占用服务端资源。简单来说&#xff0c;JWT的验证过程如下所示&#xff1a; &a…

基于微服务架构的水果销售系统的设计与实现

访问【WRITE-BUG数字空间】_[内附完整源码和文档] 整体上为微服务架构&#xff0c;使用 SpringCloud 技术&#xff0c;每个独立的服务为一个单独的 SpringBoot 工程&#xff1b;数据库使用 MySQL 数据库&#xff1b;分布式缓存使用 Redis&#xff0c;消息队列使用 Kafka。包括…