151-5197-5087
扬州华为授权服务中心
当前位置:网站首页 > 智能化工程 正文 智能化工程

最详细!Windows下的CUDA与cuDNN详细安装教程

2024-11-29 23:13:35 智能化工程 34 ℃ 0 评论
  • 写于 2024/01/26
  • 更新于2024/10/21

目录

一、了解CUDA与cuDNN

二、安装CUDA

1. 查看显卡型号与驱动版本(Driver Version)

2. 下载CUDA

3.安装CUDA

4. 验证CUDA是否安装完成

三、安装cuDNN

1.下载cuDNN

2.安装cuDNN

后记:关于cuda v11.6之后版本Samples的编译运行(以v11.8为例)

一、编译与运行

二、文件夹内容简介


20241015记:这几年,大模型的兴起,打开了新时代的大门,想要在这个时代快速地成长和生存,利用好AI进行辅助学习显然已经成为一种大趋势,我们应该抓住一切能加速自己成长的机会,国内的文心一言,豆包等,国外的大模型Chatgpt、Claude等,无一不可以辅助自己编程的学习,这里给大家推荐一个我自己在用的整合Chagpt和Claude的网站(国内可用,站点稳定):传送门

抓住AI时代每一个机会,加速自己成长,提高自己的核心竞争力与自身价值!

为了方便下次找到文章,也方便联系我给大家提供帮助,欢迎大家点赞👍、收藏📂和关注🔔!一起讨论技术问题💻,一起学习成长📚!如果你有任何问题或想法,随时留言,我会尽快回复哦😊!

本篇文章将详细从如何安装CUDA与cuDNN开始,到基本配置结束,帮助大家理清配置流程,文章最后,我将附上我的博客中其他有关CUDA的文章,欢迎大家阅读。

一、了解CUDA与cuDNN

CUDA(Compute Unified Device Architecture)是NVIDIA开发的并行计算平台和编程模型,用于利用NVIDIA GPU的并行计算能力,它允许开发者使用类似于C语言的编程语言编写并行程序,利用GPU的大规模并行计算能力加速各种类型的应用程序,包括科学计算、深度学习、图形渲染等,并提供了一套丰富的API和工具,使开发者能够方便地利用GPU加速计算,包括核心的CUDA Runtime API、CUDA Driver API以及各种辅助工具和库。 

cuDNN(CUDA Deep Neural Network library)是NVIDIA专门针对深度学习应用开发的GPU加速库。它提供了一系列高效的深度学习算法的实现,包括卷积神经网络(CNN)、循环神经网络(RNN)等常用网络结构的基本操作,如卷积、池化、归一化、激活函数等。cuDNN针对NVIDIA GPU进行了高度优化,利用GPU的并行计算能力加速深度学习模型的训练和推理过程。通过使用cuDNN,开发者可以轻松地将深度学习模型部署到支持CUDA的NVIDIA GPU上,并获得显著的性能提升。

总的来说,CUDA提供了通用的并行计算平台和编程模型,而cuDNN则是针对深度学习应用进行了优化的GPU加速库,二者结合起来可以实现高效的深度学习模型训练和推理。

二、安装CUDA

1. 查看显卡型号驱动版本(Driver Version)

①打开终端(win+R输入cmd),输入

nvidia-smi

--显卡型号:NVIDIA GeForce RTX 4060

--驱动版本:532.10

大家要了解的是:

1)驱动版本决定了CUDA版本,驱动版本越高,则可安装的CUDA版本越高

2)CUDA向下兼容,我这里是输出的CUDA版本为12.1,并不是意味着我的电脑只能安装12.1版本的CUDA,而是可以安装12.1及以下任何版本的CUDA

如果你想了解更多的驱动与CUDA之间的对应关系,可以查看官网:

CUDA 12.3 Update 2 Release Notes (nvidia.com)

TensorFlow与CUDA

在 Windows 环境中从源代码构建  |  TensorFlow

Pytorch与CUDA

Previous PyTorch Versions | PyTorch

2. 下载CUDA

①Org Download WEB:

CUDA Toolkit Archive | NVIDIA Developer

②选择你将要安装的版本,我这里选择了11.6.0

在下述界面完成后,点击Download(2.4GB),等待下载完成

这里推荐IDM下载工具,下载速度很快

3.安装CUDA

①双击安装程序

②直接点击【OK】即可,不必修改路径(如果你的C盘没有空间了,记得修改路径)

该窗口为暂时解压缩路径,一旦安装程序完成,该临时文件夹会被清理,但是,提取过程会占用文件夹的存储空间,需要足够的空间来存放解压后的文件。

点击【OK】后等待即可

③点击【同意并继续】

④选择【自定义】,点击【下一步】

⑤组件选择问题

1)Other componentsDriver components

当前版本即为我的本地版本,新版本即为CUDA安装时将要替代版本

可以看到,我的版本均大于等于新版本,不必再勾选

如果你希望进行更新,那么你可以自行选择

2)CUDA

在这里,你可以看到Visual Studio Integration

如果你的设备上已经安装了VS,那么勾选上

反之,要取消勾选,否则在后续的安装过程会报错


2024/10/21记,注意:在cuda v11.6之后(v11.7开始),cuda Toolkits不再集成Samples文件夹,该文件夹中包含许多示例代码,对cuda的安装成功与否没有影响,感兴趣的读者请查阅文章最后部分,我将对Samples如何运行进行详细赘述。


⑥点击下一步,点击浏览修改安装位置,点击【下一步】

在另一个盘中新建目录结构如下(E:\Data_cuda中):

├─Data
│  └─NVIDIA Corporation
│      └─CUDA Samples
│          └─v11.6
└─Files
    └─NVIDIA GPU Computing Toolkit
        └─CUDA
            └─v11.6

⑦等待安装

⑧点击下一步

⑨安装完成,点击【关闭】

4. 验证CUDA是否安装完成

在新打开的cmd窗口中输入:

nvcc -V

如上图,即表示安装完成!

三、安装cuDNN

1.下载cuDNN

①Org Download WEB:

Log in | NVIDIA Developer

注意:需要提前注册账号才可以登录

②这里选择版本是注意for CUDA xx.x,如果你的CUDA是11版本就选11,12版本就选12

③点开后选择【Local Install for Windows】下载

④解压下载文件

文件结构如下:

2.安装cuDNN

①复制以下三个文件夹

②将文件夹粘贴至如下路径:

path to your cudaFolder/Files/NVIDIA GPU Computing Toolkit/CUDA/v11.6

3.验证cuDNN是否安装成功

①在下述文件夹右键,打开终端

path to your cudaFolder/Files/NVIDIA GPU Computing Toolkit/CUDA/v11.6/extras/demo_suite

②输入:

.\deviceQuery.exe

得到PASS即代表安装成功

输入:

 .\bandwidthTest.exe

得到PASS即代表安装成功

转载请标明出处!
如果还有问题,欢迎在评论区留言或私信
作者:BQ
主页:bqcode.blog.csdn.net
qq群:958124241
Learn Together!


后记:关于cuda v11.6之后版本Samples的编译运行(以v11.8为例)

一、编译与运行

1.进行源码的下载

方法一:

①进入下述网址,点击Tag,切换至11.8

NVIDIA/cuda-samples at v11.8

②开始下载源码

方法二:

利用Git将该项目下载至本地,命令如下:

git clone --branch v11.8 --single-branch https://github.com/NVIDIA/cuda-samples.git

我已将该项目放至网盘,网络不好的同学可在网盘下载:

点击获取链接地址

2.文件夹中可以看到三个“.sln”文件,使用对应的VS版本打开即可

等待项目加载:

加载完成后可以看到:

3.随便点进一个文件的某个项目,以4_CUDA_Libraries下的batchCUBLAS为例,进行以下步骤:

①在batchCUBLAS.cpp末尾处的exit(nTotalErrors == 0 ? EXIT_SUCCESS : EXIT_FAILURE);前一行添加:

system("pause");

②右键batchCUBLAS,点击【生成】

可以看到,其生成的可执行文件(exe)放在了如下位置:

②进入该文件夹,双击该可执行文件,可以看到如下输出:

batchCUBLAS Starting...

GPU Device 0: "Ampere" with compute capability 8.6


 ==== Running single kernels ====

Testing sgemm
#### args: ta=0 tb=0 m=128 n=128 k=128  alpha = (0xbf800000, -1) beta= (0x40000000, 2)
#### args: lda=128 ldb=128 ldc=128
^^^^ elapsed = 0.00196190 sec  GFLOPS=2.13788
@@@@ sgemm test OK
Testing dgemm
#### args: ta=0 tb=0 m=128 n=128 k=128  alpha = (0x0000000000000000, 0) beta= (0x0000000000000000, 0)
#### args: lda=128 ldb=128 ldc=128
^^^^ elapsed = 0.00003720 sec  GFLOPS=112.75
@@@@ dgemm test OK

 ==== Running N=10 without streams ====

Testing sgemm
#### args: ta=0 tb=0 m=128 n=128 k=128  alpha = (0xbf800000, -1) beta= (0x00000000, 0)
#### args: lda=128 ldb=128 ldc=128
^^^^ elapsed = 0.00008710 sec  GFLOPS=481.55
@@@@ sgemm test OK
Testing dgemm
#### args: ta=0 tb=0 m=128 n=128 k=128  alpha = (0xbff0000000000000, -1) beta= (0x0000000000000000, 0)
#### args: lda=128 ldb=128 ldc=128
^^^^ elapsed = 0.00068830 sec  GFLOPS=60.9371
@@@@ dgemm test OK

 ==== Running N=10 with streams ====

Testing sgemm
#### args: ta=0 tb=0 m=128 n=128 k=128  alpha = (0x40000000, 2) beta= (0x40000000, 2)
#### args: lda=128 ldb=128 ldc=128
^^^^ elapsed = 0.00007860 sec  GFLOPS=533.626
@@@@ sgemm test OK
Testing dgemm
#### args: ta=0 tb=0 m=128 n=128 k=128  alpha = (0xbff0000000000000, -1) beta= (0x0000000000000000, 0)
#### args: lda=128 ldb=128 ldc=128
^^^^ elapsed = 0.00029690 sec  GFLOPS=141.27
@@@@ dgemm test OK

 ==== Running N=10 batched ====

Testing sgemm
#### args: ta=0 tb=0 m=128 n=128 k=128  alpha = (0x3f800000, 1) beta= (0xbf800000, -1)
#### args: lda=128 ldb=128 ldc=128
^^^^ elapsed = 0.00016050 sec  GFLOPS=261.327
@@@@ sgemm test OK
Testing dgemm
#### args: ta=0 tb=0 m=128 n=128 k=128  alpha = (0xbff0000000000000, -1) beta= (0x4000000000000000, 2)
#### args: lda=128 ldb=128 ldc=128
^^^^ elapsed = 0.00075190 sec  GFLOPS=55.7827
@@@@ dgemm test OK

Test Summary
0 error(s)
请按任意键继续. . .

至此,Samples手动编译并运行示例讲解结束,如有问题,可在评论去进行提问,或可加我的技术交流群,欢迎来访!

二、文件夹内容简介

在每个文件夹中,存放各类项目,0-6分别存放的项目类型为:

0_Introduction:

  • 作用:这些示例是为初学者设计的,展示了如何使用 CUDA 和 CUDA 运行时 API 的基本概念。通过这些简单的示例,你可以学习 CUDA 编程的基础知识,例如如何分配 GPU 内存、如何启动 CUDA 核函数等。
  • 适用场景:这是刚开始学习 CUDA 编程时的入门点,帮助你掌握基础概念和初步操作。

1_Utilities:

  • 作用:展示一些实用的工具,帮助开发者查询设备能力(例如 GPU 的计算能力)和测量 GPU/CPU 之间的带宽。这类示例有助于你了解设备的性能特性,并为优化 CUDA 程序做准备。
  • 适用场景:这些工具可以用于检测你的硬件环境,或者在开发 CUDA 应用时进行性能测试和评估。

2_Concepts_and_Techniques:

  • 作用:这些示例展示了 CUDA 相关的概念和常见的解决问题的技术,帮助你掌握如何在 CUDA 中实现并行算法和设计高效的计算解决方案。
  • 适用场景:适合需要学习如何应用 CUDA 并行计算的高级概念和技巧的开发者,帮助你解决实际开发中遇到的问题。

3_CUDA_Features:

  • 作用:展示 CUDA 的特性,如 Cooperative Groups、CUDA 动态并行、CUDA 图(CUDA Graphs)等。这些功能可以帮助你更有效地管理和优化 GPU 计算资源,并提高程序的性能。
  • 适用场景:适用于对 CUDA 高级特性感兴趣的开发者,这些特性可以用来实现复杂的并行任务管理和高级控制流优化。

4_CUDA_Libraries:

  • 作用:展示如何使用 CUDA 平台提供的各类库,包括 NPP(NVIDIA Performance Primitives)、NVJPEG、NVGRAPH、cuBLAS、cuFFT、cuSPARSE、cuSOLVER 和 cuRAND。这些库为常见的数学运算、图像处理、图算法等提供了高效的 GPU 加速实现。
  • 适用场景:如果你需要在你的项目中使用这些库来加速特定领域的计算(例如矩阵运算、图像处理、随机数生成等),这些示例将非常有帮助。

5_Domain_Specific:

  • 作用:展示了与特定领域(如图形、金融、图像处理)相关的 CUDA 示例。这些示例展示了如何在特定领域中利用 CUDA 进行优化和加速。
  • 适用场景:如果你正在从事特定领域(如金融建模、图形渲染、图像处理)的开发工作,这些示例将帮助你理解如何在这些领域中使用 CUDA 进行加速。

6_Performance:

  • 作用:展示了如何通过优化代码以提升 CUDA 程序的性能。这些示例包括对内存访问模式、线程调度、核函数优化等进行深入的优化。
  • 适用场景:这些示例适用于需要优化 CUDA 应用程序性能的开发者,通过分析和优化,可以最大化利用 GPU 资源。

创作不易,欢迎大家订阅📮、点赞👍、收藏📂与关注🔔,你的鼓励和支持将是我创作的最大动力💪!

转载请注明出处
作者:BQ
主页:bqcode.blog.csdn.net
公众号:BQ经验书
Learn Together!


CUDA文章如下,点击链接直达:
【CUDA代码实践01】Clion配置远程Linux服务器实现CUDA编程_clion cuda-CSDN博客

【CUDA代码实践02】矩阵加法运算程序_cuda实现矩阵加法-CSDN博客

【CUDA代码实践03】m维网格n维线程块对二维矩阵的索引_二维线程·-CSDN博客

版权说明:如非注明,本站文章均为 扬州驻场服务-网络设备调试-监控维修-南京泽同信息科技有限公司 原创,转载请注明出处和附带本文链接

请在这里放置你的在线分享代码
«    2024年12月    »
1
2345678
9101112131415
16171819202122
23242526272829
3031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
    文章归档
    网站收藏
    友情链接