WIN10环境下安装Python+CUDA+cuDNN+Anaconda+Pytorch

目录

一:安装Python

二:CUDA

1:查看显卡支持的CUDA版本

2:下载CUDA

3:安装CUDA

4:验证是否安装成功

5:多版本CUDA安装

6:多版本CUDA的切换

三:cuDNN

1:查询与CUDA版本匹配的cuDNN

2:下载相应版本cuDNN

3:安装cuDNN

4:添加环境变量

5:验证是否安装成功

四:Anaconda

1:下载与安装

2:Anaconda的使用

3:安装pytorch

3.1:添加清华源镜像通道

3.2:使用命令下载安装

3.3:测试是否安装成功

五:相关知识补充

1:pytorch,torch和torchvision的区别

2:nvcc和nvidia-smi显示的CUDA版本不同

3:cuda 与 cudatoolkit 的区别

六:相关链接

1:全部版本CUDA

2:全部版本cuDNN

3:Pytorch对应的torchvision版本

4:各种版本对应关系

4.1版本查询

4.2对应关系


一:安装Python

python官网进行python的下载,我选择了一个相对不是很新也不旧的版本,python3.8.1进行安装。

安装python十分简单,网上有各种教程,我选择的是默认安装,记得在Add Python To Path上打勾。

二:CUDA

统一计算设备架构(Compute Unified Device Architecture, CUDA),是由NVIDIA推出的通用并行计算架构。解决的是用更加廉价的设备资源,实现更高效的并行计算。

1:查看显卡支持的CUDA版本

在下载安装CUDA之前我们要先知道电脑支持的CUDA版本,在cmd中输入

nvidia-smi

我们打开NVIDIA官网查看对应版本,有如下结果:

因为箭头所指Driver Version(显卡驱动):466.11,我们的Driver Version比红框里的版本都高,所以这些版本的CUDA我们的显卡都支持。

(因为我在pytorch下载界面上看到CUDA版本,但是我不知道要不要下载一样的版本,这里保险起见我在后面下载了同一版本)

补充:到这里我曾经有疑问:上面黑色图上明明显示了CUDA Version也就是说已经安装了CUDA了呀,为啥还要安装呢?

解答:其实是因为CUDA 有两种API,分别是 运行时 API 和 驱动API,即所谓的 Runtime API 与 Driver API。
nvidia-smi 的结果除了有 GPU 驱动版本型号,还有 CUDA Driver API的型号,这里是 11.3。
CUDA Runtime API要用nvcc -V命令来查看,nvcc是和CUDA toolkit一起安装的。

2:下载CUDA

点击CUDA下载链接下载CUDA,我这里选择的是10.2

3:安装CUDA

安装过程中出现这个问题:

这个截图是安装11.1版本时做的截图,但是因为11.1尝试多次没安装成功,所以最终选择了10.2版本,10.2版本应该也会遇到下面的这个问题

根据我之前安装经验,这是需要安装VS2017,我们下载安装即可。

4:验证是否安装成功

安装完成后通过以下命令进行验证:

nvcc -V

5:多版本CUDA安装

方法很简单,和上面一样下载安装,但是需要注意只保留下面的几个包,否则会被覆盖

6:多版本CUDA的切换

在环境变量里,那个版本的路径靠前,就切换到了哪个版本

可以使用nvcc -V测试查看,测试时记得重启cmd

三:cuDNN

在安装完CUDA之后,想要研究深度学习网络的话一般都要安装cuDNN

1:查询与CUDA版本匹配的cuDNN

2:下载相应版本cuDNN

点击此处下载cuDNN

解压后可以看到以下几个文件:

3:安装cuDNN

将bin、include、lib复制到CUDA的安装路径(我的安装路径是:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2)

这样就安装完成了

4:添加环境变量

将以下地址添加到环境变量

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\bin

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\include

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\lib

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\libnvvp

多版本CUDA安装也是这样的步骤

5:验证是否安装成功

运行一下这两个程序(路径:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\extras\demo_suite):

 注意可能会出现闪退的情况,可以从cmd中一步步打开到当前位置然后运行

如果出现了这样的情况说明cuDNN安装成功(devieQuery的运行图略)

四:Anaconda

1:下载与安装

这个过程很简单,可以参考:https://www.bilibili.com/video/BV1K7411c7EL?p=3&t=667

2:Anaconda的使用

Annconda是用来进行包管理的工具,他提供了一个很重要的功能就是允许各种版本的工具包共存,比如我们在A项目中要使用Pytorch1.0,在B项目中要使用Pytorch0.4,使用Anaconda我们不再需要反复卸载安装不同版本的Pytorch,Anaconda通过划分出独立的环境来让各个工具包共存。

创建一个新的环境,在Anaconda Promote中输入

//create:创造新环境 -n:环境名称  pytorch_env:是我自己起的名字 后面是python版本,我这里是3.8版本所以python=3.8
conda create -n pytorch_env python=3.8

会弹出一系列的包名问我们要不要下载,我们输入y进行下载,完成后会有如下显示,告诉我们如果要激活这个环境,应该怎么做:

根据提示,输入:

conda activate pytorch_env

可以看到,由之前默认的base环境切换到了pytorch_env环境 

此时输入:

pip list

可以看到这个环境下已经安装的包,如下:

 

可以发现,此时这个环境里只有几个基础的包,此时还没有安装Pytorch。

我们在安装Pytorch的时候会

补充:如果想看自己有几个环境,可以使用如下指令:

conda info --envs

3:安装pytorch

由于用官方通道下载太慢,我选择使用清华园镜像

3.1:添加清华源镜像通道

在Anaconda Promote中输入

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes

打开.condarc文件(路径:C:\Users\Administrator)可以看到已经添加成功,三个通道,两个清华的一个默认的

同样,添加清华的Pytorch镜像

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/

3.2:使用命令下载安装

进入pytorch官网:https://pytorch.org/

  • (不确定CUDA版本要不要和之前安装的CUDA版本相同,这里我保险起见选择了相同版本)
  • (安装pytorch会同时安装cudatoolkit,但这里的CUDA和我们上面安装的CUDA并不完全一样,我们在这安装了CUDA但是用nvcc -V还是看不到CUDA版本

具体原因请看下面相关知识补充

因为我们这里想使用的是清华源镜像,所以对于官方提供的命令我们要做一点修改:去掉 -c pytorch,这指令是让从默认的通道下载而不是我们刚添加的清华通道

将命令复制到我们之前创建的pytorch_env环境下运行:

//命令
conda install pytorch torchvision torchaudio cudatoolkit=10.2

过程很简单,是否选择安装还是选择Yes,不再赘述,下载时间较长,耐心等待。期间看到进度条不动了按回车就出现了这样的情况,就是这个包没下完,下完的包都在Anaconda的安装目录的pkgs包下:D:\DevpSoftInstallLoc\Anaconda\pkgs,没下完的重新运行一下上面的命令会下载的。

全部下载完成后我们在当前环境(pytorch_env)输入:

pip list

即可看到在此环境下的包(刚安装完我用此命令看不到,重启电脑后成功),显示如下,可以看到torch包成功安装了。

3.3:测试是否安装成功

使用如下代码测试pytorch是否可用

import torch
print(torch.cuda.is_available())

显示True,则Pytorch可用 

再测试以下CUDA是否可用

import torch 
print(torch.cuda.is_available())

五:相关知识补充

参考:

https://www.jianshu.com/p/1c3d8deb5df1

GPU、CUDA、CUDA Toolkit、cuDNN关系

1:pytorch,torch和torchvision的区别

  • 安装 PyTorch 会安装两个模块, 一个是 torch, 一个 torchvisiontorch 是主模块, 用来搭建神经网络的
  • torchvision 是辅模块, 有数据库, 还有一些已经训练好的神经网络等着你直接用, 比如 (VGG, AlexNet, ResNet).

2:nvcc和nvidia-smi显示的CUDA版本不同

CUDA有两个主要的API:runtime(运行时) API和driver API。这两个API都有对应的CUDA版本(如9.2和10.0等)。

  • 用于支持driver API的必要文件(如libcuda.so)是由GPU driver installer安装的。nvidia-smi就属于这一类API。
  • 用于支持runtime API的必要文件(如libcudart.so以及nvcc)是由CUDA Toolkit installer安装的。(CUDA Toolkit Installer有时可能会集成了GPU driver Installer)。nvcc是与CUDA Toolkit一起安装的CUDA compiler-driver tool,它只知道它自身构建时的CUDA runtime版本。它不知道安装了什么版本的GPU driver,甚至不知道是否安装了GPU driver。

综上,如果driver API和runtime API的CUDA版本不一致可能是因为你使用的是单独的GPU driver installer,而不是CUDA Toolkit installer里的GPU driver installer。

不能混合使用这两个API,因为二者是互斥的。也就是说在开发过程中,你只能选择其中一种API。简单理解二者的区别就是:runtime是更高级的封装,开发人员用起来更方便,而driver API更接近底层,速度可能会更快。

3:cuda 与 cudatoolkit 的区别

cudatoolkit是Nvidia 官网提供的 CUDA Toolkit 可以安装开发 CUDA 程序所需的工具,包括 CUDA 程序的编译器、IDE、调试器等,CUDA 程序所对应的各式库文件以及它们的头文件

  • pytorch提供的cudatoolkit主要包含应用程序在使用 CUDA 相关的功能时所依赖的动态链接库。在安装了 cudatoolkit 后,只要系统上存在与当前的 cudatoolkit 所兼容的 Nvidia 驱动,则已经编译好的 CUDA 相关的程序就可以直接运行,而不需要安装完整的 Nvidia 官方提供的 CUDA Toolkit 。
  • 通过 Anaconda 安装的应用程序包位于安装目录下的 /pkg 文件夹中,我们可以在其中查看 conda 安装的 cudatoolkit 的内容。

通过pytorch安装的 cudatoolkit 与通过 Nvidia 官方提供的CUDAToolKit是不一样的。具体而言,Nvidia 官方提供的 CUDA Toolkit 是一个完整的工具安装包,其中提供了 Nvidia 驱动程序、开发 CUDA 程序相关的开发工具包等可供安装的选项。使用 Nvidia 官网提供的 CUDA Toolkit 可以安装开发 CUDA 程序所需的工具,包括 CUDA 程序的编译器、IDE、调试器等,CUDA 程序所对应的各式库文件以及它们的头文件。

  实际上,Nvidia 官方提供安装的 CUDA Toolkit 包含了进行 CUDA 相关程序开发的编译、调试等过程相关的所有组件。但对于 Pytorch 之类的深度学习框架而言,其在大多数需要使用 GPU 的情况中只需要使用 CUDA 的动态链接库支持程序的运行( Pytorch 本身与 CUDA 相关的部分是提前编译好的 ),就像常见的可执行程序一样,不需要重新进行编译过程,只需要其所依赖的动态链接库存在即可正常运行。故而,Anaconda 在安装 Pytorch 等会使用到 CUDA 的框架时,会自动为用户安装 cudatoolkit,其主要包含应用程序在使用 CUDA 相关的功能时所依赖的动态链接库。在安装了 cudatoolkit 后,只要系统上存在与当前的 cudatoolkit 所兼容的 Nvidia 驱动,则已经编译好的 CUDA 相关的程序就可以直接运行,而不需要安装完整的 Nvidia 官方提供的 CUDA Toolkit .

六:相关链接

1:全部版本CUDA

https://developer.nvidia.com/cuda-toolkit-archive

2:全部版本cuDNN

https://developer.nvidia.com/rdp/cudnn-archive

3:Pytorch对应的torchvision版本

如果先安装某一版本的torch,那么在安装torchvision(默认版本)的时候可能会把我们之间的torch覆盖。所以我建议直接指定torchvision版本安装。

4:各种版本对应关系

参考:https://www.cnblogs.com/Wanggcong/p/12625540.html 

4.1版本查询

python版本:直接which python或者python进入界面查看;

pytorch版本:进入python,import torch, torch.__version__

cudatoolkit版本(这里特指conda安装的那个cuda):进入python,import torch, torch.version.cuda

torchvision版本:conda list torchvision

系统cuda:一般在/user/local/cuda,使用nvcc -V

查看显卡版本:

ubuntu-drivers devices

nvidia-smi

还有一个 cudnn?

NVIDIA cuDNN是用于深度神经网络的GPU加速库。

4.2对应关系

1.pytorch和cudatoolkit版本对应关系:

https://pytorch.org/get-started/previous-versions/

2.cudatoolkit版本和系统cuda对应关系:

https://www.zhihu.com/question/344950161/answer/818139888

3.系统cuda和nvidia对应关系:

https://blog.csdn.net/He_9520/article/details/100032803

4.cuda和cuDNN的关系和对应关系:

https://www.jianshu.com/p/622f47f94784

https://www.cnblogs.com/yeran/p/11345990.html

小结:

gpu有驱动,系统cuda用于加速,cudnn是系统cuda的深度学习小应用,cudatoolkit是深度学习框架,对系统cuda的适应器(Anaconda安装的cudatoolkit是不完整NIVIDA的CUDA,深度学习只需要用一小部分的CUDA,另外,cuDNN也可以通过conda安装,命令为:conda install cuDNN=版本号)

  • 7
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值