解决Pytorch的版本问题

  • 1. 背景介绍
  • 2. 解决方案
  • 3. 相关资料

1. 背景介绍

最近,笔者在跑代码时,出现了如下问题。翻译过来,大意是目前所使用的RTX 3090的显卡的算力是8.6,而当前Pytorch所依赖的CUDA版本支持的算力只有3.7、5.0、6.0、6.1、7.0、7.5。

UserWarning: 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.

解决RTX 3090 with CUDA capability sm_86 is not compatible with the current PyTorch installation.
经查询得知,RTX 3090的显卡一般要安装11以上的CUDA版本及对应的Pytorch版本。

2. 解决方案

升级CUDA版本,然后安装与CUDA版本相对应的Pytorch。

  • 第一步,笔者首先安装了11.6版本的CUDA,具体安装步骤,可以点这里。

  • 第二步,进Pytorch官网,查询与CUDA版本相对应的Pytorch安装命令,如下:
    解决RTX 3090 with CUDA capability sm_86 is not compatible with the current PyTorch installation.

  • 第三步,进入到自己的虚拟环境中,执行上述命令,如下,这个过程比较漫长,不过等等应该是可以成功的。
    解决RTX 3090 with CUDA capability sm_86 is not compatible with the current PyTorch installation.

完成上述三步,再跑代码就不会出现之前的问题了。

3. 相关资料

虽然,笔者参考网上的一些教程解决了问题,但是在深入查阅资料的过程中,发现对CUDA底层并不是很清楚,如果下面说的不对,希望大家指正!下面这些都是:虽然我没理解,但多少对我还是有所帮助的一些文档,我在阅读的同时顺便罗列在这里,以便大家查阅,及我日后的回顾。

  • 适用于 CUDA 应用程序的 NVIDIA Ampere GPU 架构兼容性指南:https://docs.nvidia.com/cuda/ampere-compatibility-guide/。大致意思为:显卡的算力要高于CUDA的算力,并且在一般情况下,两者的算力应该在同一个版本下。例如,RTX 2080 Ti显卡的算力为7.5,那么在装CUDA时,应该装算力为7.X的CUDA,且7.5≥7.X。以笔者的经验来看,RTX 2080 Ti的显卡装CUDA Toolkit 10.x就行,RTX 3090的显卡装CUDA 11系列的就可以。
    解决RTX 3090 with CUDA capability sm_86 is not compatible with the current PyTorch installation.

  • 显卡的编译过程:https://docs.nvidia.com/cuda/cuda-compiler-driver-nvcc/index.html#virtual-architectures

  • CUDA架构及对应编译参数:https://www.cnblogs.com/phillee/p/12049208.html

  • nvcc的code、arch、gencode选项:https://zhengqm.github.io/blog/2018/12/07/cuda-nvcc-tips.html

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。