报错描述

执行 pip install 'git+https://github.com/facebookresearch/detectron2.git' 安装 detectron2 遇到错误:

nvcc fatal   : Unsupported gpu architecture 'compute_86'

在这里插入图片描述
报错环境:

  • Linux:Ubuntu 18.04
  • GPU:NVIDIA GeForce RTX 3090
  • CUDA:11.0
  • Pytorch:1.10
  • Python:3.9
  • GCC:7.5.0

解决方案

错误原因: GPU 3090 算力是 8.6,而当前 CUDA 11.0 不支持算力 8.6。

解决方案: 设置环境变量,降低算力要求。

# 打开配置文件
vi ~/.bashrc
# 在配置文件中添加如下一行
export TORCH_CUDA_ARCH_LIST="8.0"  # 因为是CUDA11.0,对应的算力为8.0
# 保存后source更新
source ~/.bashrc

再次执行报错的安装命令,安装成功:
在这里插入图片描述
解决方案(目前不可行):将 CUDA 版本升级到支持算力 8.6 即可,但同时需要安装对应的PyTorch。在 CUDA官网 可以看到目前最新的 CUDA 版本是 11.6,表示支持算力 8.6 的 GPU。但是上 PyTorch官网 却看到目前 PyTorch 支持的 CUDA 最高版本是 11.3。因此这个办法暂时是不可行了,因为 PyTorch 还没有支持。
在这里插入图片描述

关于报错的原因解释

compute_86 是说当前 GPU 3090 的算力是 8.6,关于 GPU 算力和 CUDA 算力的关系是:

  • 算力 8.0 的显卡可以在最高支持算力 8.6 的 CUDA 下正常运行
  • 但算力 8.6 的显卡不能在最高支持算力 8.0 的 CUDA 下正常运行
  • 也就是说 CUDA 支持的最高算力要大于等于GPU本身的算力

关于版本问题:

  • 通常 CUDA 的最新版本要比 PyTorch 支持的 cuda 版本高,要注意
  • CUDA 10.x 最高支持算力为 7.x,CUDA 11.x 最高支持算力为 8.x
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐