admin管理员组

文章数量:1565292

显卡驱动、CUDA、cuDNN之间联系以及安装配置

前言:在配置PyTorch的过程中,显卡驱动、CUDA、cuDNN三者之间的关系、作用以及在众多版本中如何搭配一直困扰着我。虽然网上资料很多,但各说其词,即使最终迈过种种坑成功运行,但脑子里还是一团乱麻。所以回过头来看NVIDIA的官方文档,一方面记录配置过程防止遗忘,另一方面也希望能够帮助有和我一样困惑的童鞋。本人能力有限,如有不妥之处,希望批评指正。
软件链接:https://pan.baidu/s/1bMbPR4cWORZ8gXlcD8PfcQ
提取码:5336
PyTorch包链接:https://pan.baidu/s/1QXnH5lV60aji7tmKl41ZMg
提取码:9zay

一、显卡驱动、CUDA、cuDNN介绍

显卡驱动

显卡驱动是封装成软件的程序,硬件厂商根据操作系统编写的配置文件。安装成功后成为了操作系统中的一小块代码,它是硬件所对应的软件,有了它,计算机就可以与显卡进行通信,驱使其工作。如果没有显卡驱动,显卡就无法工作。

CUDA

官网introduction:其是由NVIDIA发明的并行计算平台以及编程模型,它可以显著的提高GPU的计算性能。
官网introduction链接:https://docs.nvidia/cuda/cuda-installation-guide-microsoft-windows/index.html

cuDNN

官网综述:NVIDIA的cuDNN是针对深度神经网络计算的一个GPU加速库,为标准例程提供了高度优化的实现,比如向前、向后卷积,池化,规范化和激活层。其是NVIDIA Deep Learning SDK的一部分。
官网综述链接:https://docs.nvidia/deeplearning/sdk/cudnn-install/
有一个比喻能够更形象的说明CUDA、cuDNN两者的关系:CUDA看作是一个工作台,上面配有很多工具,如锤子、螺丝刀等。cuDNN是基于CUDA的深度学习GPU加速库,有了它才能在GPU上完成深度学习的计算。它就相当于工作的工具,比如它就是个扳手。但是CUDA这个工作台买来的时候,并没有送扳手。想要在CUDA上运行深度神经网络,就要安装cuDNN,就像你想要拧个螺帽就要把扳手买回来。这样才能使GPU进行深度神经网络的工作,工作速度相较CPU快很多。
比喻出自:https://www.jianshu/p/622f47f94784

二、安装以及版本选择说明

1、显卡驱动
这个没啥可说的,进入NVIDIA驱动下载官网https://www.nvidia/Download/index.aspx?lang=cn根据自己显卡名称对应选择,点击搜索然后下载。


点击下载的软件“同意并继续”进行安装

这里我选择的是自定义安装,当然你也可以选择推荐的精简安装,不影响后续安装过程。

全选点击下一步

重启结束显卡驱动安装

显卡安装成功后鼠标右键—>点击NVIDIA控制面板—>系统信息

查看安装好的显卡驱动版本,我的版本是445.75,这个非常重要,在选择CUDA版本的时候需要。

网上有一部分资料认为下图红框内的11.0.126才是安装好的显卡驱动对应的CUDA版本号,不知依据出自何处。如果按照网上的步骤,我应该选择CUDA 11.0.126,但尴尬的是,在我发布这篇博客的时候NVIDIA还没有发布这么高的版本,最高才10.2.89(CUDA安装步骤中有贴图),所以不科学。我对CUDA 11.0.126的理解是,当前我安装的显卡驱动最高能支持的CUDA版本是11.0.126,这可能是NVIDIA在写驱动程序的时候规划好的,虽然还没有这么高版本。(对于CUDA的版本选择让我困惑了一段时间,通过翻阅官方文档消除了疑惑,如果想更深一步了解,下一步CUDA安装中我有详细的举例说明)

2、CUDA安装
CUDA安装官网描述:运行CUDA应用程序的两个必要条件是
(1)系统至少拥有一个支持CUDA编程的GPU硬件;
(2)能够兼容CUDA的驱动程序版本。
通过参考官网文档我对下图表格的理解:
(1)NVDIA发布的每一个CUDA工具包都有一个最低版本的显卡驱动限制,比如红色框内是目前最新版本的CUDA 10.2.89,Windows下其支持的显卡驱动最低版本是441.22,也就是说低于441.22的显卡驱动都无法安装CUDA 10.2.89。
(2)显卡驱动是向后兼容的,新的版本兼容旧的版本。
(3)对于指定的一个CUDA工具包仍然适用于后续NVIDIA发布的更高版本驱动。举例说明:文章中我的显卡驱动版本是445.75>=441.22所以目前我安装的显卡驱动都能与表中的CUDA任何一个版本兼容。假如你显卡驱动版本是400.36>= 398.26,但<411.31,所以CUDA 9.2 (9.2.148 Update 1)以下(包含9.2)CUDA版本都能兼容,以上则不能。

CUDA官网描述链接:https://docs.nvidia/cuda/cuda-toolkit-release-notes/index.html
至此,明确了显卡驱动和CUDA的兼容关系,然后根据你要配置的深度学习框架来最终选择CUDA版本。
我要配置的是PyTorch,进入官网:https://pytorch/
可以看到PyTorch当前支持的CUDA版本是9.2和10.1,而我的显卡驱动10.2以下的CUDA都兼容,为了体验更新的版本我选择了10.1。
或者你即想配置PyTorch也想配置CAFFE,那么你可以分别安装两个不同版本的CUDA,一个支持PyTorch,一个支持CAFFE。这样是不冲突的,只是在用的时候要切换版本。


好了,CUDA的选择已经介绍完,接下来开始正式安装:
百度中直接搜索CUDA 10.1,然后点击

进入下载页面,然后根据自己的需求对应选择下载,红色框中前一个是网络安装,文件比较小,里面只有CUDA,不含有显卡驱动,后一个是下载到本地安装,2个多G,里面含有显卡驱动(安装的时候可以不勾选)我选择的是第二种

双击安装软件点击OK进行(安装CUDA路径建议默认,方便后面配置cuDNN)

同意并继续

这步很重要,如果不想替换之前安装好的显卡驱动,选择自定义,点击下一步

只勾选安装CUDA,点击下一步

下一步

勾选协议,NEXT

下一步

关闭,安装结束

3、cuDNN安装
通过1、2安装完显卡驱动、CUDA后,接下来下载配置cuDNN。
cuDNN官网下载链接:https://developer.nvidia/rdp/cudnn-archive
我安装的是CUDA10.1,对应我选择下载最新的cuDNN(红色框)

我在Win10下运行,选择对应版本

然后会进入这个页面。已经注册过的点击Login直接登录,未注册过的点击Join now按提示注册登录

登录后点击下载

按照官网文档配置cuDNN:将下载解压好的cuDNN三个路径下的文件分别对应拷贝到CUDA安装目录对应文件中

我的拷贝过程如下图

至此,CUDA、cuDNN配置完成,接下来验证是否配置成功。
4、测试
配置完成后,我们可以验证是否配置成功,主要使用CUDA内置的deviceQuery.exe 和 bandwithTest.exe:
首先win+R启动cmd,输入 cd C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\extras\demo_suite,然后分别执行bandwidthTest.exe和deviceQuery.exe,应该得到下图:
执行bandwidthTest.exe

接着执行deviceQuery.exe

如果以上两步都返回了Result=PASS,恭喜你配置成功。
至此,配置显卡驱动、CUDA、cuDNN以及说明三者之间的关系介绍已结束,希望对你有帮助。

如果想配置PyTorch,请参考“Win10+GTX1660Ti+CUDA10.1+cuDNN v7.6.4+Anaconda+PyCharm配置GPU版本PyTorch超详细步骤”https://blog.csdn/qq_18620653/article/details/105375891?spm=1001.2014.3001.5502

本文标签: 显卡驱动关系CUDAcuDNN