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结果

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

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

相关文章

【vue脚手架配置代理+github用户搜索案例+vue项目中常用的发送Ajax请求的库+slot插槽】

vue脚手架配置代理github用户搜索案例vue项目中常用的发送Ajax请求的库slot插槽 1 vue脚手架配置代理2 github用户搜索案例2.1 静态列表2.2 列表展示2.3 完善案例 3 vue项目中常用的发送Ajax请求的库3.1 xhr3.2 jQuery3.3 axios3.4 fetch3.5 vue-resource 4 slot 插槽4.1 效果4…

【沁恒蓝牙mesh】CH58x 将RTC时钟切换为LSE外部低速时钟

本文主要记录了【沁恒蓝牙mesh】CH58x 如何将RTC时钟切换为外部时钟 💖 作者简介:大家好,我是喜欢记录零碎知识点的小菜鸟。😎📝 个人主页:欢迎访问我的 Ethernet_Comm 博客主页🔥🎉…

实测有效的 8 个顶级Android 数据恢复工具

由于我们现在生活在一个依赖数字数据的时代,当重要文件从我们的 Android 手机中消失时,这将是一场数字噩梦。如果您没有预先备份Android手机上的数据或未能通过备份找到已删除的数据,那么选择最好的Android数据恢复软件是最佳选择。 因此&am…

苹果提醒事项怎么用?几个简单步骤就能学会!

苹果提醒事项可以帮助你轻松管理待办事项,让你更好地安排自己的时间和工作。但是,有些小伙伴可能对如何使用这个功能还有一些疑问。苹果提醒事项怎么用?不要担心,小编将为大家提供使用提醒事项的方法,帮助你学会如何使…

Nginx系列-正向代理和反向代理

Nginx系列-正向代理和反向代理 文章目录 Nginx系列-正向代理和反向代理1. 三个对象2. 两种场景代理2.1. 正向代理2.2. 反向代理 3. 两种场景的对比3.1 为什么叫做反向代理3.2 正向代理和反向代理的作用 1. 三个对象 客户端:发出请求到代理,并接收代理的…

Android : Fragment 传递数据 — 简单应用

示例图: 创建 Fragment new -> Fragment -> Fragment(Blank) MainActivity.java package com.example.fragmentdemo;import androidx.appcompat.app.AppCompatActivity; import androidx.fragment.app.FragmentManager; import andro…

C语言每日一题(41)循环队列

力扣 622 循环队列 题目描述 设计你的循环队列实现。 循环队列是一种线性数据结构,其操作表现基于 FIFO(先进先出)原则并且队尾被连接在队首之后以形成一个循环。它也被称为“环形缓冲器”。 循环队列的一个好处是我们可以利用这个队列之前…

5W2H分析法

5W2H分析法 5W2H分析法又叫七问分析法。 模型介绍 简单、方便,易于操作的思考(框架)模型,问题分析模型,它可以帮助我们保证思考的严谨与全面,也能给人启发,有着广泛的应用: 提问-可…

AndroidNDK开发之交叉编译

在Android studio2.2以及以上,构建原生库的默认工具是cmake。 CMake是一个跨平台的构建工具,可以使用简单的语句来描述所有平台的安装(编译过程)。 能够输出各种各样的makefile或者project文件。cmake并不直接构建出最终的软件,而是产生其他工…

Web学习笔记

Web学习笔记 flask库前端基础超链接:空连接:图片:视频(音频):嵌套使用列表表格格式化表格input表单系列 网络请求GET方式POST请求通过GET方式获取输入参数通过POST方式获取输入参数注册页面 CSS三种使用方式…

MYSQL存储

注意: 1.如果没有指定的SESSION/GLOBAL,默认是SESSION,会话变量。 2.mysql服务重新启动之后,所设置的全局参数会失效,要想不失效,可以在/etc/my.cnf中配置。 变量 用户定义变量是用户根据需要自己定义变量…

Redis队列stream,Redis多线程详解

Redis 目前最新版本为 Redis-6.2.6 ,会以 CentOS7 下 Redis-6.2.4 版本进行讲解。 下载地址: https://redis.io/download 安装运行 Redis 很简单,在 Linux 下执行上面的 4 条命令即可 ,同时前面的 课程已经有完整的视…

《尚品甄选》:后台系统——权限管理之分类和品牌管理,使用EasyExcel导入导出数据(debug一遍)

文章目录 一、分类管理1.1 表结构介绍1.2 分类列表查询 二、EasyExcel使用2.1 EasyExcel简介2.2 导出功能2.3 导入功能 三、品牌管理3.1 表结构介绍3.2 列表查询3.3 添加品牌3.4 修改品牌3.5 删除品牌 一、分类管理 分类管理就是对商品的分类数据进行维护。 1.1 表结构介绍 分…

缺省参数的声明和定义

首先,函数缺省参数不能同时出现在声明和定义中,如出现则报错: 声明和定义中同时出现缺省参数 ctrlb,编译报错,提示 “test":重定义默认参数:参数1 编译报错 当函数的声明和定义中都出现…

第10关:基数排序

任务要求参考答案问答98 任务描述相关知识 基数排序算法编程要求测试说明 任务描述 本关任务:实现基数排序算法,并将乱序数列变成升序。 相关知识 为了完成本关任务,你需要掌握:1.基数排序算法。 基数排序算法 基数排序是按…

Node.js下载安装教程

一、下载安装包 1、百度网盘自提链接: 链接:https://pan.baidu.com/s/1Bbw895MtUgjlfZylPHCCxw 提取码:x89v 2、进入官网下载 https://nodejs.org/zh-cn/download/ 选择对应版本,我这里选的windows64位版本 二、安装程序 1、…

使用shell快速查看电脑曾经连接过的WiFi密码

此方法只能查看以前连接过的wifi名称和对应的密码 查看连接过的WiFi名称netsh wlan show profiles查看具体的WiFi名称netsh wlan show profile name"你的wifi名称" keyclear

vivado综合分析与收敛技巧1

使用细化视图对 RTL 进行最优化 完成任意实现步骤后使用 report_timing 、 report_timing_summary 或 report_design_analysis 分析时序结果时, 您必须审查关键路径结构 , 了解是否可通过修改 RTL 、使用综合属性或者使用其他综合选项来更有效地将…

LeetCode.24两两交换链表中的节点

LeetCode.24两两交换链表中的节点 1.问题描述2.解题思路3.代码 1.问题描述 给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。 示…

雷达公式实现(matlab)

雷达公式实现 代码来源:《雷达系统分析与设计(MATLAB版)(第三版)》 function [snr] radar_eq(pt,freq,g,sigma,b,nf,loss,range) % This program implements Eq.(1.63) %% Inputs:% pt——峰值功率,W% freq——雷达中心频率,Hz% g——天线…