解决的英文短语(解决RTX 3090 with CUDA capability sm_86 is not compatible with the current PyTorch installation.)
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的显卡一般要安装11以上的CUDA版本及对应的Pytorch版本。
2. 解决方案
升级CUDA版本 ,然后安装与CUDA版本相对应的Pytorch 。
第一步 ,笔者首先安装了11.6版本的CUDA ,具体安装步骤 ,可以点这里 。
第二步,进Pytorch官网 ,查询与CUDA版本相对应的Pytorch安装命令 ,如下:
第三步,进入到自己的虚拟环境中 ,执行上述命令 ,如下,这个过程比较漫长 ,不过等等应该是可以成功的 。
完成上述三步 ,再跑代码就不会出现之前的问题了 。
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系列的就可以 。
显卡的编译过程: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
创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!