在配置PyTorch的过程中,显卡驱动、CUDA、cuDNN三者之间的关系、作用以及在众多版本中如何搭配一直困扰着我。虽然网上资料很多,但各说其词,即使最终迈过种种坑成功运行,但脑子里还是一团乱麻。所以回过头来看NVIDIA的官方文档,一方面记录配置过程防止遗忘,另一方面也希望能够帮助有和我一样困惑的童鞋。本人能力有限,如有不妥之处,希望批评指正。
显卡驱动是封装成软件的程序,硬件厂商根据操作系统编写的配置文件。安装成功后成为了操作系统中的一小块代码,它是硬件所对应的软件,有了它,计算机就可以与显卡进行通信,驱使其工作。如果没有显卡驱动,显卡就无法工作。
官网introduction:其是由NVIDIA发明的并行计算平台以及编程模型,它可以显著的提高GPU的计算性能。官网introduction链接:https://docs.nvidia.com/cuda/cuda-installation-guide-microsoft-windows/index.html
官网综述:NVIDIA的cuDNN是针对深度神经网络计算的一个GPU加速库,为标准例程提供了高度优化的实现,比如向前、向后卷积,池化,规范化和激活层。其是NVIDIA Deep Learning SDK的一部分。官网综述链接:https://docs.nvidia.com/deeplearning/sdk/cudnn-install/有一个比喻能够更形象的说明CUDA、cuDNN两者的关系:CUDA看作是一个工作台,上面配有很多工具,如锤子、螺丝刀等。cuDNN是基于CUDA的深度学习GPU加速库,有了它才能在GPU上完成深度学习的计算。它就相当于工作的工具,比如它就是个扳手。但是CUDA这个工作台买来的时候,并没有送扳手。想要在CUDA上运行深度神经网络,就要安装cuDNN,就像你想要拧个螺帽就要把扳手买回来。这样才能使GPU进行深度神经网络的工作,工作速度相较CPU快很多。比喻出自:https://www.jianshu.com/p/622f47f94784
cuda的版本一定要根据你自己的显卡型号来决定,所以这里记一下自己显卡驱动的版本先右键桌面点击英伟达控制面板
点击左下角系统信息
查看你的驱动程序版本(要记住了,一会就根据这个来选择cuda的版本)
看一下自己的驱动版本符合哪些cuda版本,你可以使用所有低于你驱动程序版本的cudatoolkit比如我显卡驱动是5.46.12,那么我可以下载最新的CUDA12.3注意:比你驱动程序版本高的cudatoolkit绝对不能使用https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html
进入NVIDIA驱动下载官网⇲ https://www.nvidia.cn/Download/index.aspx?lang=cn根据自己显卡名称对应选择,点击搜索然后下载。
自己选择好下载以后按照默认步骤安装即可之后按照上面步骤看一下显卡驱动版本对应的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版本都能兼容,以上则不能。注意:比你驱动程序版本高的cudatoolkit绝对不能使用https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html
在以下链接选择自己系统环境,会自动推荐https://developer.nvidia.com/cuda-downloads?target_os=Windows&target_arch=x86_64&target_version=11&target_type=exe_local
打开developer.nvidia.com/cuda-downloads,打开有点慢
选择Windows
本地安装
接下来就会出现对应的安装包
安装或许会有点慢,取决你网速
下载完成后,我们双击安装
选择路径
等待解压
进入安装流程
等待检查兼容性
安装的话,基本上都是 默认 选项
等待安装即可
中途会黑一下,这是正常情况! 安装成功 检查是否安装成功 nvidia-smi
通过1、2安装完显卡驱动、CUDA后,接下来下载配置cuDNN。cuDNN官网下载链接:⇲ https://developer.nvidia.com/rdp/cudnn-archive由于我的CUDA是12.3所以我这里下载的是第一个(这里需要注册登录,自己注册登录一下即可)
按照官网文档配置cuDNN:将下载解压好的cuDNN三个路径下的文件分别对应拷贝到CUDA安装目录对应文件中
至此,CUDA、cuDNN配置完成,接下来验证是否配置成功。
配置完成后,我们可以验证是否配置成功,主要使用CUDA内置的deviceQuery.exe 和 bandwithTest.exe:首先win+R启动cmd,输入 cd C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.3\extras\demo_suite>,然后分别执行.\bandwidthTest.exe和.\deviceQuery.exe,应该得到下图:执行bandwidthTest.exe
如果以上两步都返回了Result=PASS,恭喜你配置成功。至此,配置显卡驱动、CUDA、cuDNN以及说明三者之间的关系介绍已结束。
PyTorch官网下载链接⇲ https://pytorch.org/到对应的官网,输入配置项,复制命令
将上面的 pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121复制到命令框,然后回车静静等待安装。
出现Successful installed torch=1.4.0 torchvision=0.5.0说明PyTorch安装成功
(上面我安装过程没有保留截图,随便用其他图替代)
⇲ https://blog.csdn.net/qq_18620653/article/details/105420158
依次输入python、import torch、import torchvision、torch.version print(torch.cuda.is_available())如果不报错,并且返回torch版本,以及True。恭喜你PyTorch GPU版本安装成功。
也可以用李沐老师的方法
至此,PyTorch配置过程到此结束,希望能够帮助到你。
⇲ 配置显卡驱动、CUDA、cuDNN以及说明三者之间的关系
李沐大佬安装视频:⇲ Windows 下安装 CUDA 和 Pytorch 跑深度学习 - 动手学深度学习v2_哔哩哔哩_bilibili