CUDA capability sm_86 is not compatible with the current PyTorch(安装DRIVER 多个CUDA CUDNN PYTORCH )

文章讲述了在Ubuntu20.04系统中,使用RTX3080显卡运行PyTorch时遇到的CUDA兼容性问题。问题源于显卡算力与CUDA版本不匹配。解决方案包括:检查并安装匹配的CUDAtoolkit版本(11.7),更新至兼容的NVIDIA驱动(515.43.04以上),以及在conda虚拟环境中安装相应版本的CUDA和PyTorch。此外,还提到了CUDNN的安装和配置,以及环境变量的设置,确保CUDA和PyTorch能正确识别和使用GPU。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

环境

ubuntu20.04 RTX3080
conda虚拟环境

问题描述

使用pytorch时遇到报错:

UserWarning: NVIDIA GeForce RTX 3080 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.
If you want to use the NVIDIA GeForce RTX 3080 GPU with PyTorch, please check the instructions at https://pytorch.org/get-started/locally/

原因

显卡算力与CUDA toolkit版本不匹配

环境配置顺序

1.根据driver选择cuda
2.根据cuda选择pytorch
3.根据pytorch选择python
三者关系层层递进确定所需的python、cuda、pytorch版本。

深究:

官网1查询所用显卡的算力

如下图,我的是3080(同样适合笔记本显卡、非游戏显卡),算力是8.6,即8.X
在这里插入图片描述

官网2查询算力所对应的CUDA toolkit版本

此处没有明说,1.4.2节提到 CUDA Toolkit 11.0满足8.0算力(实际应该是8.X的意思,因为没有8.0算力的显卡)
这篇博客有对应的表格,可以参考。从而选择需要的CUDA toolkit版本,我选择11.7.

官网3查询CUDA toolkit对应的显卡驱动版本

请添加图片描述
可以发现11.7的CUDA需要515.43.04以上的显卡驱动,

安装

在 软件和更新 中的 附加驱动 处安装所需的驱动

这里的515具体版本是515.86.01满足要求,也可以选择更高版本。
请添加图片描述
可以在终端输入以下代码来检查,第一行就是驱动版本:

nvidia-smi

请添加图片描述

安装对应的CUDA toolkit

包括系统环境中的CUDA toolkitconda虚拟环境中的CUDA toolkit,方法很多,我就不一一介绍了。我的安装方法:
系统环境中:
官网方法(第一个CUDA):请添加图片描述
根据得到的命令在终端安装

conda环境中:

conda search cudatoolkit
conda install cudatoolkit==(所需版本)
conda install cudatoolkit==11.7# 举例,从官网可在后面加上 -c nvidia 

系统环境中安装多个CUDA

第一个CUDA安装见上一条
后续还需要安装仍然通过官网
请添加图片描述
根据得到的命令行安装。
可以通过ls /usr/local/ | grep cuda命令行检查是否成功安装了CUDA
但是环境还需要配置:

命令行输入gedit ~/.bashrc,在弹出窗口最下方注释掉#cuda下方的内容并添加:

# ${版本号}更改为CUDA版本 如11.7
export LD_LABRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-${版本号}/lib64
export PATH=$PATH:/usr/local/cuda-${版本号}/bin
export CUDA_HOME=$CUDA_HOME:/usr/local/cuda-${版本号}
export PATH=/usr/local/cuda/bin:$PATH

source ~/.bashrc使配置生效,然后用nvcc -V检查环境是否配置成功

安装对应的pytorch

pytorch官网中找到相应的命令进行安装,Pytorch和CUDA对应的版本及Pytorch和Python对应的版本及Python与Anaconda的对应关系中提到了pytorch版本与cuda版本、python版本的关系。
卸载注意:
使用conda list查看pytorch版本并使用 conda uninstall pytorch卸载,如果发现卸载后还能查询torch版本,可以使用pip list查看是否存在torch并使用pip uninstall torch卸载。

系统环境中安装CUDNN(与报错问题无关,记录下环境配置)

文档中检查所需要的版本:
请添加图片描述
然后在CUDNN官网,需要注册和填写问卷,选择Local installer for Linux x86_64(Tar)下载。
请添加图片描述

#  ${cudnn版本}更改为CUDNN版本  即下载文件名称 如8.9.7.29  
#  ${cuda版本}更改为CUDA版本 如cuda11
#  在下载的文件夹内打开终端
tar -xvf cudnn-linux-x86_64-${cudnn版本}_${cuda版本号}-archive.tar.xz
sudo cp cudnn-linux-x86_64-${cudnn版本}_${cuda版本号}-archive/include/cudnn*.h /usr/local/cuda/include
sudo cp -p cudnn-linux-x86_64-${cudnn版本}_${cuda版本号}-archive/lib/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*

参考了这篇博客,个人认为最简单的方法。
这些命令的作用是将cuDNN的头文件和库文件复制到CUDA的安装目录下,并修改它们的权限。让CUDA能够调用cuDNN的函数和算法,从而加速深度神经网络的计算。
cuDNN的安装并不需要执行任何可执行文件或脚本,只需要将它的头文件和库文件放到合适的位置,让CUDA能够找到它们就可以了。

cuDNN是一个用于深度神经网络的GPU加速库,它提供了一些高效的算法,如卷积、矩阵乘法、池化等https://zhuanlan.zhihu.com/p/99880204?from_voters_page=true。cuDNN的安装并不需要执行任何可执行文件或脚本,只需要将它的头文件和库文件放到合适的位置,让CUDA能够找到它们就可以了

注意

1.在系统中和conda虚拟环境中都可以安装CUDA toolkit,但是系统中安装的版本必须比虚拟环境中更新,原因:虚拟环境中cuda最重要的内核驱动它并没有安装,无论虚拟环境安装哪个版本的cudatoolkit,都会调用系统的cuda内核。
2.CUDA toolkit可以向下兼容,所以可以用新版本替换旧版本。
3.pytorch和cuda也有对应关系,所以建议下载cuda对应的新版本,但是pytorch1.X版本间存在一些兼容问题,需要更改API接口等。
4.关于pytorch调用的cuda版本问题,可以参考这篇博客

参考博客

显卡算力、驱动版本、CUDA、pytorch之间的关系
深入浅出pytorch笔记——第一章
cudaGetDevice() failed. Status: CUDA driver version is insufficient for CUDA runtime version解决
Ubuntu cudnn安装
【深度学习】ubuntu18.04环境配置详细教程

### 回答1: 这句话的意思是:当前安装PyTorch版本不支持具有CUDA能力的sm_86的NVIDIA GeForce RTX 3090。该PyTorch版本只支持sm_37、sm_50、sm_60、sm_61、sm_70、sm_75和compute_37的CUDA能力。 ### 回答2: 这句话的意思是,nvidia geforce rtx 3090的CUDA计算能力为sm_86,而当前安装pytorch只支持计算能力为sm_37、sm_50、sm_60、sm_61、sm_70和sm_75,以及compute_37。因此,当前的pytorch安装不支持nvidia geforce rtx 3090这样的显卡。 要解决这个问题,我们需要升级pytorch安装程序以支持sm_86计算能力。这可以通过更新pytorch安装程序或使用更高版本pytorch来实现。同时,我们还需要确保GPU驱动程序和CUDA工具包版本pytorch要求的版本匹配,这是保证兼容性的必要条件。 此外,需要注意的是,nvidia geforce rtx 3090是面向高端用户的显卡,其计算能力比较高,适合进行复杂的机器学习和深度学习任务。因此,如果需要使用这款显卡进行计算任务,建议再研究一下相关文献,以确保计算效率和性能的最大化。 ### 回答3: NVIDIA的GeForce RTX 3090显卡采用了最新的CUDA架构SM_86,但是据错误提示所述,当前安装PyTorch不支持SM_86CUDA能力。当前版本只支持CUDA能力为SM_37、SM_50、SM_60、SM_61、SM_70、SM_75以及compute_37的显卡。 这意味着,如果您想在使用GeForce RTX 3090的同时使用PyTorch,您需要更新PyTorch安装版本以支持新的CUDA架构。或者,您可以降级GeForce RTX 3090的CUDA版本以与当前的PyTorch版本兼容。 更新PyTorch的方法如下: 1. 确认您的显卡支持SM_86架构。 2. 下载并安装支持SM_86架构的CUDA版本。 3. 更新PyTorch版本以支持新的CUDA版本。 降级GeForce RTX 3090的CUDA架构的方法如下: 1. 确认您当前的PyTorch版本支持您想要降级的CUDA架构。 2. 下载并安装符合您要求的CUDA版本。 3. 更新GeForce RTX 3090的驱动程序以支持新的CUDA架构。 总的来说,更新或降级系统中的组件的方法相对较为简单,但需要您仔细检查是否兼容,并在更新之前备份数据。在完成更改后,确保所有应用程序都正常运行。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值