赞
踩
目录
1:pytorch,torch和torchvision的区别
去python官网进行python的下载,我选择了一个相对不是很新也不旧的版本,python3.8.1进行安装。
安装python十分简单,网上有各种教程,我选择的是默认安装,记得在Add Python To Path上打勾。
统一计算设备架构(Compute Unified Device Architecture, CUDA),是由NVIDIA推出的通用并行计算架构。解决的是用更加廉价的设备资源,实现更高效的并行计算。
在下载安装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一起安装的。
点击CUDA下载链接下载CUDA,我这里选择的是10.2
安装过程中出现这个问题:
这个截图是安装11.1版本时做的截图,但是因为11.1尝试多次没安装成功,所以最终选择了10.2版本,10.2版本应该也会遇到下面的这个问题

根据我之前安装经验,这是需要安装VS2017,我们下载安装即可。
安装完成后通过以下命令进行验证:
nvcc -V

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

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

可以使用nvcc -V测试查看,测试时记得重启cmd
在安装完CUDA之后,想要研究深度学习网络的话一般都要安装cuDNN

点击此处下载cuDNN


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

将bin、include、lib复制到CUDA的安装路径(我的安装路径是:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2)
这样就安装完成了
将以下地址添加到环境变量
- 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安装也是这样的步骤
运行一下这两个程序(路径:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\extras\demo_suite):

注意可能会出现闪退的情况,可以从cmd中一步步打开到当前位置然后运行
如果出现了这样的情况说明cuDNN安装成功(devieQuery的运行图略)

这个过程很简单,可以参考:https://www.bilibili.com/video/BV1K7411c7EL?p=3&t=667
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
由于用官方通道下载太慢,我选择使用清华园镜像
在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/
进入pytorch官网:https://pytorch.org/

具体原因请看下面相关知识补充)
因为我们这里想使用的是清华源镜像,所以对于官方提供的命令我们要做一点修改:去掉 -c pytorch,这指令是让从默认的通道下载而不是我们刚添加的清华通道
将命令复制到我们之前创建的pytorch_env环境下运行:
- //命令
- conda install pytorch torchvision torchaudio cudatoolkit=10.2

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

全部下载完成后我们在当前环境(pytorch_env)输入:
pip list
即可看到在此环境下的包(刚安装完我用此命令看不到,重启电脑后成功),显示如下,可以看到torch包成功安装了。

使用如下代码测试pytorch是否可用
- import torch
- print(torch.cuda.is_available())
显示True,则Pytorch可用

再测试以下CUDA是否可用
- import torch
- print(torch.cuda.is_available())

参考:
https://www.jianshu.com/p/1c3d8deb5df1
CUDA有两个主要的API:runtime(运行时) API和driver API。这两个API都有对应的CUDA版本(如9.2和10.0等)。
综上,如果driver API和runtime API的CUDA版本不一致可能是因为你使用的是单独的GPU driver installer,而不是CUDA Toolkit installer里的GPU driver installer。
不能混合使用这两个API,因为二者是互斥的。也就是说在开发过程中,你只能选择其中一种API。简单理解二者的区别就是:runtime是更高级的封装,开发人员用起来更方便,而driver API更接近底层,速度可能会更快。
cudatoolkit是Nvidia 官网提供的 CUDA Toolkit 可以安装开发 CUDA 程序所需的工具,包括 CUDA 程序的编译器、IDE、调试器等,CUDA 程序所对应的各式库文件以及它们的头文件
通过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 .
https://developer.nvidia.com/cuda-toolkit-archive
https://developer.nvidia.com/rdp/cudnn-archive

如果先安装某一版本的torch,那么在安装torchvision(默认版本)的时候可能会把我们之间的torch覆盖。所以我建议直接指定torchvision版本安装。
参考:https://www.cnblogs.com/Wanggcong/p/12625540.html
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加速库。
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=版本号)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。