NVIDIA GeForce RTX 3090 with CUDA capability sm_86 is not compatible with the current PyTorch installation. The current PyTorch install supports CUDA capabilities sm_37 sm_50 sm_60 sm_61 sm_70 sm_75 compute_37.
省流版
卸载torch torchvision torchaudio(conda装conda卸 pip装pip卸)
命令行运行:
pip install torch==1.9.1+cu111 torchvision==0.10.1+cu111 torchaudio==0.9.1 -f https://download.pytorch.org/whl/torch_stable.html
分析原因
贴一个OStrack GitHub链接:OStrack
根据Option1中的方式部署环境,即:
conda create -n ostrack python=3.8
conda activate ostrack
bash install.sh
在配置好各种路径后,运行test,报错
NVIDIA GeForce RTX 3090 with CUDA capability sm_86 is not compatible with the current PyTorch installation. The current PyTorch install supports CUDA capabilities sm_37 sm_50 sm_60 sm_61 sm_70 sm_75 compute_37.
翻译一下:当前pytorch支持算力 sm_37 sm_50 sm_60 sm_61 sm_70 sm_75,而当前显卡(GeForce RTX 3090)的算力为sm_86
我们是通过install.sh这个脚本安装的pytorch,注意看下图画框部分,原作者指定了安装cuda版本为10.2的pytorch,该版本pytorch不支持sm_86算力
解决方式1
将install.sh脚本第二行,也就是上图画框处的cudatoolkit=10.2 改为 cudatoolkit=11.3,修改过后第二行为:
conda install pytorch==1.9.0 torchvision==0.10.0 torchaudio==0.9.0 cudatoolkit=11.3 -c pytorch
由于我的Solving environment要转八辈子转到我老,并且长期不想解决这个问题,这种方式我没有亲测
解决方式2
首先卸载pytorch torchvision torchaudio
conda uninstall pytorch torchvision torchaudio
(由于我的uninstall也很慢并且长期不想解决此问题,所以我选择直接remove环境,重新创建环境)
ostrack中的torch版本为1.9.0,查询pytorch官方
已知ostrack原文安装的是cuda10.2版本,不支持sm_86算力,故安装cuda11.3版本的
conda install pytorch==1.9.0 torchvision==0.10.0 torchaudio==0.9.0 cudatoolkit=11.3 -c pytorch -c conda-forge
理论上应该是可以,由于conda太慢了,还是没有亲测,选择官方给出的pip版
即:
pip install torch==1.9.0+cu111 torchvision==0.10.0+cu111 torchaudio==0.9.0 -f https://download.pytorch.org/whl/torch_stable.html
理论上还是可以的,报错找不到版本
解决方式3
既然1.9.0版本的pytorch安装会有各种问题,so我直接安装了1.9.1版本的pytorch
即:
pip install torch==1.9.1+cu111 torchvision==0.10.1+cu111 torchaudio==0.9.1 -f https://download.pytorch.org/whl/torch_stable.html
安装结束后,查看torch版本支持的算力:
import torch
print(torch.cuda.get_arch_list())
输出:['sm_37', 'sm_50', 'sm_60', 'sm_70', 'sm_75', 'sm_80', 'sm_86']
即torch版本支持3090的sm_86算力!问题得到解决!
将install.sh脚本中安装pytorch的行注释掉
再运行bash install.sh 安装其它包,就可以成功运行了!