pytorch的安装--源码

-------------------------------------源码安装pytorch相关--------------------------------

GPU部分和硬件相关,和pytorch无关,只需折腾pytorch即可。

重点解决 PyTorch no longer supports this GPU because it is too old.问题

原因:ptorch 官方说明 为控制编译后的文件大小,编译时将低端的算力部分移除。

因此想要在高版本pytorch上支持低端GPU的话,需要通过源码安装的方式。

官网并不认为这是问题,因此未在issues中,而是放在了discuss中

官方说明 PyTorch no longer supports this GPU because it is too old. - PyTorch Forums

Step0 清空已安装pytorch

conda uninstall pytorch

Step1 确认版本信息

确认要安装的pytorch版本

同之前step1确认要安装的pytorch相关版本。

官网地址Previous PyTorch Versions | PyTorch 此处找到cuda支持的最新pytorch版本即可

注意是在cuda版本限制的情况下的最新pytorch,而不是最新的pytorch版本

下面以v1.8.1下的window版本为例说明

Step2 找到对应版本的源码

后面需要修改源码,并编译出适配本机的版本。

官方github地址:GitHub - pytorch/pytorch: Tensors and Dynamic neural networks in Python with strong GPU acceleration

注意此处不要用master,要选择对应版本,不同版本间说明是有差异的。

将对应版本的源码下载到本地 git clone -b v1.8.1 GitHub - pytorch/pytorch: Tensors and Dynamic neural networks in Python with strong GPU acceleration

pytorch的安装--源码_第1张图片

转到对应版本后,查看README.md说明中的From Source部分

Step2 找到源码编译所需前提

详细阅读相关说明。

1、查看平台无关的公共部分

pytorch的安装--源码_第2张图片

2、查看各平台的差异部分,其中windows版最复杂

确认所需编译器:

pytorch的安装--源码_第3张图片

此处提到需要vs2019 16.7.1之前的版本才可以。

Step3 安装平台编译器

下载对应的vs版本

官网地址:Downloads - Visual Studio Subscriptions Portal

注意有些版本微软已不支持,向下查找,并下载不需要密钥的buil tools版本

pytorch的安装--源码_第4张图片

Step4:修改源码进行适配

直接编译的话依旧会不支持低版本GPU,因此需要修改源码中的支持列表。添加本机的gpu算力

修改文件位置:pytorch\torch\utils\cpp_extension.py

pytorch的安装--源码_第5张图片

Step5:编译安装

1、到对应的python环境下 conda activate XXX

2、跳转到下载的源码路径下编译,即pytorch路径下

3、执行文档中提到的公共部分

pytorch的安装--源码_第6张图片

4、根据平台差异进行配置后再安装

官网只是提供示例,无法完全适配每台机器的差异。需要手动设置环境,参照官方的pytorch\.jenkins\pytorch\win-test-helpers\build_pytorch.bat(在下载的源码中) 进行修改并配置。拷贝一份到源码pytorch\下,并set 里面提到的各种变量。

pytorch的安装--源码_第7张图片

好不容易根据机器状态配置完成,终于能编译了,编译了一晚上,第二天一看,还是出错了。(抓狂。。。)

最后我采用的是将其他vs版本全部卸载了,只留了一个

故不再进行环境配置,直接执行  python setup.py install --cmake

编译过程中发现pytorch的安装脚本中已自带环境搜索功能,并自行设置变量。

经实验不带cmake 使用的是ninja编译,容易出问题,故采用cmake。

该步最容易出各种问题,注意观察失败原因,并在github的issue中搜索相关解答。

Step5:测试是否成功

上述编译完成,无报错即可正常使用

import torch

# 判断pytorch是否支持GPU加速

print(torch.cuda.is_available())

备注:单纯使用torch包是没有问题,但torchvison包是需要另外安装的。

不要使用conda 命令安装torchvison!!,会将已编译好的torch修改成官方适配的版本,导致前功尽弃!!!

后面介绍源码安装torchvison

torchvison的安装--源码_huoshi191的博客-CSDN博客

你可能感兴趣的:(pytorch,pytorch,人工智能,python)