3080/3090 pytorch gpu计算环境安装指南 ubuntu20.04


本文档写于2020年10月22日,若有任何官方安装包更新 请使用官方轮子进行安装

30系列显卡安装pytorch gpu计算环境需要解决的核心问题

30系列显卡是新一代架构,新驱动不支持cuda9以及cuda10,所以必须安装cuda11、而pytorch现在稳定版为1.6,最高仅支持到cud10.2。所以唯一的办法就是使用上处于beta测试的1.7或1.8。这也是为啥一开始就强调本文的写作时间,因为未来一定会有稳定版发布,请使用稳定版。torch_geometric 计算包官方发布的现成轮子仅支持到pytorch-1.6和cuda10.2。
所以核心问题就是cuda11 pytorch 以及torch_geometric之间的匹配。

环境介绍

ubuntu 20.04
Nvidia 驱动版本 455.23
cuda 11.1
cudnn-11.1-linux-x64-v8.0.4.30
pytorch 1.8.0a0+fe4f90c
torchvision 0.8
torch_geometric 1.6.1

安装驱动 cuda cudnn

首先安装显卡驱动 cuda cudnn 这一部分和以往任何一个版本的安装过程基本相同,网上博客很多就不赘述了。
需要注意的是必须安装cuda11,重要的话得加黑。对应版本的cudnn也是必须得装,因为接下来我们要采用编译安装的方法安装后续的计算环境,其依赖于cudnn。

注意:新版的cudnn安装时要将所有的.h文件都拷贝过去,因为cudnn.h有相对以前些许改动。
解压cudnn的压缩包后执行:

sudo cp cuda/include/cudnn* /usr/local/cuda/include/
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64/
sudo chmod a+r /usr/local/cuda/include/cudnn*
sudo chmod a+r /usr/local/cuda/lib64/libcudnn*

这里也可以拷贝到 /usr/local/cuda-11.1/的路径下 但是记得进行重新建立软连接,将其链接到/usr/local/cuda

安装pytorch

conda安装

不使用torch_geometric的小伙伴可以直接

conda install pytorch torchvision cudatoolkit=11 -c pytorch-nightly

此命令安装的是cuda11.0对应的pytorch-1.8,conda会再装一个cuda11.0工具 不与前面装的cuda 11.1冲突

源码编译安装

pytorch官方提供的稳定版轮子只支持到1.6,cuda只支持到10.2. 虽然Nightly版本已经支持到cuda11.0 但是为了后面编译安装torch_geometric 我们需要使用cuda11.1对应的pytorch,所以pytorch也需要编译安装
参照https://github.com/pytorch/pytorch的编译安装指南。
首先安装依赖

conda install numpy ninja pyyaml mkl mkl-include setuptools cmake cffi typing_extensions future six requests dataclasses

从github克隆源码

git clone --recursive https://github.com/pytorch/pytorch
cd pytorch
git submodule sync
git submodule update --init --recursive

这里因为github在墙外面,直接git是不行的,需要手动下载或者使用代理

编译安装

export CMAKE_PREFIX_PATH=${CONDA_PREFIX:-"$(dirname $(which conda))/../"}
python setup.py install

编译安装完成后记得退出当前文件夹,不要在当前文件夹下测试import torch 否则会有一个报错告诉你更改文件夹

在其他任意地方进行安装检查:

$ python -c "import torch; print(torch.__version__)"
>>> 1.8.0a0+fe4f90c
$ python -c "import torch; print(torch.version.cuda)"
>>> 11.1
$ python -c "import torch; print(torch.cuda.current_device())"
>>> 0

记得要做最后一个检查,因为只有这个检查通过了才说明你的pytorch能够使用30系列gpu,如果你的pytorch对应的不是cuda11,前两个检查能通过,第三个会报错说pytorch和3080/3090不兼容

安装 torchvision

git clone --recursive https://github.com/pytorch/vision.git
cd vision/
python setup.py install

安装检查

$ python -c "import torchvision; print(torchvision.__version__)"
>>> 0.8.0a0+8088cc9

安装 PyTorch Geometric

PyTorch Geometric 官方提供的轮子只支持到pytorch-1.6,我们前面编译安装出来的是1.8,因此需要进行编译安装
添加环境变量

export PATH=/usr/local/cuda/bin:$PATH
export CPATH=/usr/local/cuda/include:$CPATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH

检查cuda版本与pytorch中使用的cuda版本是否相同

$ nvcc --version
>>> 11.1
$ python -c "import torch; print(torch.version.cuda)"
>>> 11.1

这两个显示的cuda必须相同,这就是为什么前面必须得编译安装pytorch。因为conda安装现在只提供cuda11.0对应的pytorch。

编译安装,一个一个来,编译的很慢

pip install torch-scatter
pip install torch-sparse
pip install torch-cluster
pip install torch-spline-conv
pip install torch-geometric

安装过程中如果提示 :/local/usr/cuda/bin/nvcc 找不到 这是因为环境变量里多了个冒号,需要更改CUDA_HOME环境变量

sudo gedit ~/.bashrc

将 export CUDA_HOME=$CUDA_HOME:/usr/local/cuda 改为 export CUDA_HOME=/usr/local/cuda 然后使之生效

source ~/.bashrc

自此,torch-geometric安装成功。但是别急,前方天坑。当你import torch_geometric时 大概率会失败

在这里插入图片描述
为什么说大概率会失败,因为很可能你看到这个博客的时候这个bug还没改。
在torch_sparse/tensor.py的126行这里,作者写的时候可能脑子抽了,有个代码错误。
原文是

def type_as(self, tensor=torch.Tensor):

把等号改成冒号,注意是英文冒号

def type_as(self, tensor:torch.Tensor):

然后再次安装检查

$ python -c "import torch_geometric; print(torch_geometric.__version__)"
>>> 1.6.1

大功告成

  • 7
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 13
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值