CUDA安装及环境配置——最新详细版

确定安装版本

在安装之前呢,我们需要确定三件事
第一:查看显卡支持的最高CUDA的版本,以便下载对应的CUDA安装包
第二:查看对应CUDA对应的VS版本,以便下载并安装对应的VS版本(vs需要先安装)
第三:确定CUDA版本对应的cuDNN版本,这个其实不用太关注,因为在cudnn的下载页面会列出每个版本对应的cuda版本,11.x以上对应的范围很宽

确定显卡支持的CUDA版本

在显卡驱动被正确安装的前提下,在命令行里输入nvidia-smi.exe,效果如图所示
CUDA Version
可以看到显示CUDA Version为11.6,说明该显卡最高支持到11.6,我这里就选择11.6的版本,你也可以选择更低的版本比如 11.5,11.4更低的版本

确定CUDA版本支持的VS版本

查询官方安装文档,这里给出文档地址:https://docs.nvidia.com/cuda/archive/11.6.0/cuda-installation-guide-microsoft-windows/index.html
可知,支持的VS版本如下表:
vs 版本
可以看到支持VS2017的15.x以上的版本,VS2019 16.x以上的版本,也支持VS2022 17.0
我这里选择VS2019

确定CUDA版本对应的cuDNN版本

在cudnn下载页面,我们cuda是11.6,这里就选择cuDNNV8.4.0版本的for CUDA11.x版本即可
cuDNN版本
好了三个安装版本都确定好了,现在开始一个个安装就行,安装的顺序是先安装vs2019、CUDA11.6、然后是cuDNNV8.4.0,如果 你安装的是别的版本,注意它们之间的版本对应就行,套路是一样的。

安装vs2019

官方下载地址:https://visualstudio.microsoft.com/zh-hans/vs/older-downloads/
vs2019下载页面
因为现在最新的VS2022都出来了,要下载VS2019需要注册账户,不愿意注册的小伙伴,可以从我给的百度云盘链接中下(是个在线安装包,版本为VS2019社区版 v16.11,满足刚才CUDA对vs2019 16.x以上的要求)
链接:https://pan.baidu.com/s/1D8eGWZwkRBoGyDiriWa-Hw?pwd=g790
提取码:g790
下载vs2019社区版在线安装器,然后双击运行即可
vs2019安装页面注意,需要选择C++开发模块,其它根据自己的需求安装就好了,安装路径可以默认,也可以根据自己情况更改一下,然后点击安装就好了,后面都是自动安装了,因为需要在线下载东西,过程有点长,耐心等待一下~~

安装CUDA

下载安装包,在NVIDIA官方网站即可下载,地址为:https://developer.nvidia.com/cuda-toolkit-archive
CUDA下载页面
注意选择你的操作系统,什么版本的 我是Windows11 需要选择11,离线安装包还是在线安装包,省得麻烦就选择离线安装包了,选择好后,点击下面的Download按钮。
安装包下载好后,双击安装包进行安装
抽取页面
弹出这个,临时抽取文件放置位置的,直接点击ok、随后进入系统兼容性的检查,就是看你是否下错安装包了
兼容性检查
没问题后会弹出许可协议
许可协议
直接点击同意并继续,弹出的安装选项,选择自定义
自定义选型
点击下一步
选择安装选型
把CUDA选一下,还需要注意一点,如果 你前面没有安装vs,直接安装的这个,需要把CUDA里面的
Visual Studio Integration取消勾选,否则会安装不成功
取消
我们前面已经安装vs2019了,所以我就不取消了,下一步就是选择安装的位置了,你可以直接默认安装在C盘,如果 你像我一样自定义的话,需要记住安装的位置,后面需要用到
安装位置
下一步之后,就会进行安装
安装进行中
安装完成后,会提示Nsight Visual studio的整合情况,这里提示安装了vs2019版的,正是我们前面安装的VS版本,这样就能在vs2019里面做GPU方面的开发了
Nsight
点击下一步
安装完成
这里提示了你选择的组件的安装情况,到这就安装好了,点击关闭。

检查是否安装成功

打开cmd,输入 nvcc -V
CUDA安装成功
出现了你安装的CUDA的版本信息,说明安装成功了
你可能还觉得不过瘾,CUDA里面有个demo_suite文件夹中有些工具,让我们测试,我们一起来试试吧 ,定位安装目录的demo_suite文件夹,我的是
D:\Program Files\Nvidia\CUDA\v11.6\extras\demo_suite
确定cmd的执行位置在这个文件夹
cmd位置
我们先输入deviceQuery,查询一下本机的gpu设备
devicequery
我们再来测试一下带宽,输入bandwidthTest
bandwidthTest
能看出结果都是PASS,说明一切运行正常

安装cuDNN

下载安装包,在NVIDIA官方网站即可下载,地址为:https://developer.nvidia.com/rdp/cudnn-archive
如果 你没有NVIDIA开发者账号的话,就按照提示注册一个就好,再登录即可下载了。
下载下来是个压缩包,我的是cudnn-windows-x86_64-8.4.0.27_cuda11.6-archive.zip 直接解压缩,完成后点击去你能看到如下三个文件夹(bin、include、lib)
cuDNN文件夹
把这三个文件夹的文件分别拷贝到CUDA安装目录对应的(bin、include、lib)文件夹中即可。CUDA的lib目录有x64 、Win32、cmake三个文件夹,拷到其中的x64这个文件夹中
对应的位置
都装好了运行一个CUDA程序试试呗
在VS2019中创建一个CUDA项目
创建CUDA项目
点击下一步,默认会创建一个数组相加的例子
demo
直接运行该demo,成功打印结果,大功告成了。
demo结果

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于Jupyter快速入门Python,Numpy,Scipy,Matplotlib

文章目录 Jupyter 和 Colab 笔记本PythonPython 版本基础数据类型数字Numbers布尔值Booleans字符串Strings 容器列表List字典Dictionaries集合Sets元组Tuples 函数类 Numpy数组Array数组索引Array indexing数据类型DatatypesArray math广播Broadcasting Scipy图像操作MATLAB文件…

IOS覆盖率报告info文件解读

一,IOS覆盖率报告的生成 在做前端精准测试的时候,对于iOS端,通常会做如下操作: (1)合并覆盖率数据 如下操作: xcrun llvm-profdata merge coverage_file1657885040728.profraw coverage_fil…

Java 可变长参数

可变长参数定义 从 Java5 开始,Java 支持定义可变长参数,所谓可变长参数就是允许在调用方法时传入不定长度的参数。可变长参数允许方法接受任意多个相同类型的参数,在方法内部可以将这些参数视为数组来处理。可变长参数通过省略号&#xff0…

【洛谷 P8668】[蓝桥杯 2018 省 B] 螺旋折线 题解(数学+平面几何)

[蓝桥杯 2018 省 B] 螺旋折线 题目描述 如图所示的螺旋折线经过平面上所有整点恰好一次。 对于整点 ( X , Y ) (X, Y) (X,Y),我们定义它到原点的距离 dis ( X , Y ) \text{dis}(X, Y) dis(X,Y) 是从原点到 ( X , Y ) (X, Y) (X,Y) 的螺旋折线段的长度。 例如 …

java SSM汽车租赁管理系统myeclipse开发mysql数据库springMVC模式java编程计算机网页设计

一、源码特点 java SSM汽车租赁管理系统是一套完善的web设计系统(系统采用SSM框架进行设计开发,springspringMVCmybatis),对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用…

【Docker】了解Docker Desktop桌面应用程序,TA是如何管理和运行Docker容器(3)

欢迎来到《小5讲堂》,大家好,我是全栈小5。 这是《Docker容器》系列文章,每篇文章将以博主理解的角度展开讲解, 特别是针对知识点的概念进行叙说,大部分文章将会对这些概念进行实际例子验证,以此达到加深对…

MySQL实战:SQL优化及问题排查

有更合适的索引不走,怎么办? MySQL在选取索引时,会参考索引的基数,基数是MySQL估算的,反映这个字段有多少种取值,估算的策略为选取几个页算出取值的平均值,再乘以页数,即为基数 查…

Springboot+vue的项目申报管理系统(有报告)。Javaee项目,springboot vue前后端分离项目。

演示视频: Springbootvue的项目申报管理系统(有报告)。Javaee项目,springboot vue前后端分离项目。 项目介绍: 采用M(model)V(view)C(controller&#xff09…

盲盒抽卡机小程序——开启神秘之旅!

亲爱的朋友们,欢迎来到盲盒抽卡机小程序!这里,是一个充满神秘与惊喜的世界,让你随时随地体验抽卡的乐趣。在这里,你可以轻松尝试各种盲盒,发现隐藏的宝藏,感受心跳加速的刺激。 【丰富多样的盲…

ARM单片机中程序在ROM空间和RAM空间的分布(分散加载文件,Scatter-Loading Description File)

对于 K e i l u V i s i o n I D E Keil\quad uVision\quad IDE KeiluVisionIDE,程序编译好之后,代码的下载位置( R O M ROM ROM空间)以及代码运行的时候使用的 R A M RAM RAM空间( R A M RAM RAM空间)默认…

华为云云耀云服务器L实例评测|用PHP从数据库到后端到前端完整实现一个中秋节祝福语项目

🏆作者简介,黑夜开发者,CSDN领军人物,全栈领域优质创作者✌,CSDN博客专家,阿里云社区专家博主,2023年6月CSDN上海赛道top4。 🏆数年电商行业从业经验,历任核心研发工程师…

考虑到通信链路中断的(Delay Tolerant Network, DTN)

文章目录 A Study of DTN for Reliable Data Delivery from Space Station to Ground Stationabstractintroduction An Analytical Framework for Disruption of Licklider Transmission Protocol in Mars Communicationsabstract本文贡献 OVERVIEW OF RELIABLE DATA TRANSMISS…

Excel转pdf

1、excel-内存值--Workbook 转pdf /** * excel To pdf * * param outPath 输出路径 * param workbook excel-内存值 * throws IOException */ public static void excelToPdf(String outPath,Workbook workbook) throws IOException, DocumentException { Document documentnul…

Android studio Gradle下载失败,如何手动配置解决该问题详解

前些天发现了一个蛮有意思的人工智能学习网站,8个字形容一下"通俗易懂,风趣幽默",感觉非常有意思,忍不住分享一下给大家。 👉点击跳转到教程 前言: 今天在打开公司一个项目时,突然要重新下载相关的gradle&am…

图机器学习(4)-面向连接层面的人工特征工程

0 问题定义 通过已经连接去猜未知连接: 有两个思路: (1)直接提取link的特征,把link变成D维向量; (2)把link两端节点的D维向量拼在一起,缺点:丢失了link本身…

CSAPP-程序的机器级表示

文章目录 概念扫盲思想理解经典好图安全事件 概念扫盲 1.汇编代码使用文本格式,相较于汇编的二进制可读性更好 2.程序内存包括:可执行的机器代码、操作系统需要的信息、管理过程调用和返回的运行时栈、用户分配的内存块 3.链接器为函数调用找到匹配的可…

基于SpringBoot宠物领养系统的设计与实现(代码+数据库+文档)

** 🍅点赞收藏关注 → 私信领取本源代码、数据库🍅 本人在Java毕业设计领域有多年的经验,陆续会更新更多优质的Java实战项目,希望你能有所收获,少走一些弯路。🍅关注我不迷路🍅** 一、研究背景…

运维:记一次寻找定时任务并删除的经历

前言 我相信接手别人的服务器、或者在没有任何文档的情况去看自己原先的服务器,都或多或少会遇到莫名其妙的服务器独有规则。 比如你服务本身跑的好好的,突然啪的一下,没了! 什么原因导致的呢?其中,很大可能是定时任务在作祟。 原因分析 本次,我遇到的问题是:在Ubuntu系…

基于GitBucket的Hook构建ES检索PDF等文档全栈方案

背景 之前已简单使用ES及Kibana和在线转Base64工具实现了检索文档的demo,预期建设方案是使用触发器类型从公共的文档源拉取最新的文件,然后调用Java将文件转Base64后入ES建索引,再提供封装接口给前端做查询之用。 由于全部内容过长&#xff…

Linux学习:权限

目录 1. shell命令的工作原理与存在意义1.1 shell命令解释器存在的意义1.2 shell解释器的工作原理 2. Linux操作系统:用户2.1 什么是用户2.2 用户的切换操作2.3 用户权限划分的意义 3. Linux中权限的种类和意义3.1 什么是权限3.2 sudo指令与短暂提权 4. 文件类型与文…