Pytorch、CUDA 和 cuDNN 的安装图文详解 win11(解决版本匹配问题)
本文已收录于 Pytorch 系列专栏: Pytorch入门与实践 专栏旨在详解 Pytorch,精炼地总结重点,面向入门学习者,掌握 Pytorch 框架,为数据分析,机器学习及深度学习的代码能力打下坚实的基础。免费订阅,持续更新。
可能出现的问题:
CUDA 和 cuDNN 版本不匹配
CUDA 和 Pytorch 版本不匹配
cuDNN 和 Pytorch 版本不匹配
显卡不支持 CUDA 该版本
已经装完部分,发现版本不匹配准备卸载。
说在前面的话!
在 ubuntu 系统下,可以尝试装多个 cuda 版本,然后通过 conda 安装对应的 Pytorch 版本。通过软连接的方式来实现 cuda 版本的切换。**但是,在 win 系统下,最好是用相同的支持版本,以免不匹配。**不用纠结是否向下兼容等等问题,最优的方法就是安装相同的版本。
对于 CUDA 的版本,我推荐用以往的稳定版本,就是指目前还在一直维护的比较旧的版本,原因有很多:
比较旧的版本有强大的社区支持,可以方便地找到前人总结地 bug 解决方案,而不是遇到最新问题时能力不够导致的一筹莫展。
较旧的版本至今仍在维护,说明其仍有很大的价值,用户基数很多,能确保开发的流畅与稳定。
由于学术界和工业界都喜欢用比较稳定的版本来搭建模型,因此如果想要复现论文,或是 pull 别人的代码修改,较新的版本很有可能会出现错误。
CUDA 的安装
1.查询支持的最高版本
首先安装之前要先检查我们显卡所支持的最高的 CUDA 版本:
目前是 11.6 的驱动,因此我的显卡最高是可以支持到 CUDA11.6 版本的。
知道了我们的最高支持版本之后,我们就可以在小于等于该版本的 CUDA 中选择了。
2.查询 Pytoch 与 cuDNN 版本
首先不用着急挑选 CUDA 的版本。我们先看下pytorch以及cuDNN的版本支持情况。
Pytorch:https://pytorch.org/
cuDNN:https://developer.nvidia.com/rdp/cudnn-archive
可以看到对于 win 系统,Pytorch 支持的版本有 10.2,11.3,11.6 等。
cuDNN 支持的版本有 10.2,11.5,11.4 等等。
这里我推荐装 10.2 或者 11.3,原因见开头,不多做赘述。这里以 11.3 为例。
3.下载 CUDA
在 CUDAhttps://developer.nvidia.com/cuda-toolkit-archive中,寻找CUDA Toolkit 11.3版本,然后寻找相应的版本下载即可。
4.安装 CUDA
安装 CUDA,首先需要选择 CUDA 的临时解压路径,这个临时解压文件夹会在安装完成后自动删除,这里建议默认。
解压完成后会有安装程序,同意即可。接下来的安装选项选择自定义:
在安装 CUDA 中取消这个 VS 有关的组件:
底下这三个也没必要,可安可不安,看个人选择:
安装路径仍然建议默认,在 Program Files 中,方便以后寻找。建议记住这里的 CUDA 路径。
然后一直确认最后关闭即可,这里不多赘述。
5.验证 CUDA 是否安装成功
我们在cmd
中使用 cd 命令切换到刚刚 CUDA 的安装路径下的 bin(二进制)文件夹下,再执行 nvcc -V 命令。
可见 CUDA 是正确安装的。
cuDNN 的安装
在 cuDNN 的版本中,选择支持该版本的 CUDA 即可,这里我们看到 v8.5.0 的 cuDNN 支持 CUDA 11.X,说明兼容 cuda11.x 全系列。点击下载即可。
接下来,解压该压缩包,然后复制其中的文件夹
粘贴到 CUDA 的安装目录下,即完成了 cuDNN 的安装。
验证是否安装成功
在 cmd 中进入到 demo 文件夹:路径为C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.3\extras\demo_suite
执行bandwidthTest.exe
,如果运行结果出现了 PASS 即代表安装成功。
再输入命令deviceQuery.exe
查询设备。
这里会显示你的 GPU 型号,以及 PASS,表示 CUDA 和 cuDNN 都安装成功了。
Pytorch 安装
进入 Pytorch 官网https://pytorch.org/,选择需要安装的 pytorch 版本。这里安装方式可以选择 pip。可以看到有生成的 command,里面有个网站,只需要进入该网址下载即可。
下载 torch
由于我们安装的 torch 版本为 Stable1.12.1,因此我们需要查找前缀为:torch-1.12.1
的文件。注意找的是 GPU 版本,cuxxx 代表 CUDA 版本 xxx。这里我们找到对应的 cu113,然后点击下载。cp 代表 python 版本,这里我们选择 cp37 版本的 win 下载。
然后返回,进入 torchvision。
下载 torchvision
torchvision 的版本选择最新就好,但是要与 cuda 及 python 匹配,这里直接搜索cu113-cp37
下载对应的版本即可。
新建 pycharm 创建项目,新建项目名称为 PytorchTest, 文件名为 HelloPytorch。输入以下代码测试
结果报错,ModuleNotFoundError: No module named 'torch'
,因为当前环境没有 torch。
我们可以用 conda 创建虚拟环境并安装 torch。
首先再 Terminal 中输入conda create -n pytorch-gpu python=3.7
,这里 python 版本与我们要安装的版本相同。
出现 Proceed ([y]/n)? 直接输入 y 即可。
接着输入conda activate pytorch_gpu
激活环境。
注意:进入 conda 虚拟环境后 venv 前面的提示会变成你的环境名称,如下:
如果没有显示,则可能因为 pycharm 终端采用的是 PowerShell。需要在设置中切换。
换成如图所示的 cmd 终端即可。
进入终端后切换到下载刚刚 torch 和 torchvision 的文件夹中
用 pip 安装 torch
用 pip 安装 torchvision
完成安装
安装完成后,需要绑定该项目的解释器为这个虚拟环境。因此需要设置:
找到该项目的 Python 解释器,然后点击齿轮,选择 add:
选择 conda,找到已经存在的环境:
查找你的 anaconda 安装的目录
这里可以搜索 anaconda 并打开文件位置。
然后继续右键打开文件位置即可。
打开后找到 envs(环境)文件夹。
找到刚刚创建的环境,复制文件路径到 pycharm。
在 pycharm 中选择该文件路径下的 python.exe 解释器即可
然后一直 ok,等待 python 解释器的重载即可,可能需要等一分钟。
然后重新尝试测试代码并运行。
返回 true 说明安装成功。
CUDA 的卸载
首先,搜索控制面板并打开
找到程序卸载
可以在列表中找到有关于 NVIDIA 的相关组件,找到有关于 CUDA 的组件并卸载即可,其他的可以保留,因为高于该版本的 CUDA 会更新其他组件的。(本质上临近时间安装的都能卸载)
右键 -> 卸载 然后在卸载程序中卸载即可。剩下的方法类似。
最后不放心的话可以用火绒等软件清理一下注册表。
版权声明: 本文为 InfoQ 作者【timerring】的原创文章。
原文链接:【http://xie.infoq.cn/article/0672637b5c38911cac352e26d】。未经作者许可,禁止转载。
评论