显卡显卡驱动版本cuda版本和Pytorch相互之间的依赖关系
Posted 小毅同学
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了显卡显卡驱动版本cuda版本和Pytorch相互之间的依赖关系相关的知识,希望对你有一定的参考价值。
问题
话不多说,本文主要就是探讨如何根据显卡和显卡驱动版本去选择相应的CUDA和Pytorch。
显卡
显卡驱动版本
打开cmd命令提示符,输入nvidia-smi然后按回车键:
需要关注两个地方:
- 显卡驱动版本:516.59
- 显卡支持最高的CUDA版本:11.7
显卡计算力
CUDA
查询CUDA与显卡驱动版本对应关系
CUDA与显卡驱动版本对应关系:
CUDA与显卡计算力关系:
选择CUDA前,先要搞清楚显卡的驱动版本和显卡的计算力,显卡计算力和显卡驱动版本共同决定CUDA版本。
一般,显卡计算力在7.5以上的,就可以选择10.0以上的CUDA,然后再根据显卡的驱动版本选择具体的CUDA版本。
Pytorch
当确定了CUDA的版本后,就可以去到Pytorch官网选择对应的Pytorch版本。
备注:以上仅代表个人观点和建议,仅供参考,如有错误,欢迎指正。
pytorch、显卡、显卡驱动、cuda版本是如何对应的
参考技术A 做深度学习的小伙伴们可能都会在安装环境的时候经常遇到的cuda版本驱动版本以及和显卡是如何对应的,经常搞得特别糊涂,官网没有直接提供他们的对应关系,导致我们在升级显卡的时候发现原来的软件环境不兼容,出现各种奇奇怪怪的问题。NVIDIA系列显卡做深度学习,需要在宿主机安装显卡驱动(driver),需要在docker中安装英伟达的科学计算库(cuda),在python中安装深度学习库(我主要用pytorch),driver依赖显卡,cuda依赖driver,pytorch依赖cuda,于是就会有一些版本依赖问题.
最近我在将显卡从GTX2070升级到GTX3090的时候,发现自己原来pytorch程序总会在.cuda()命令卡十分钟左右,并且还有其他异常。后来才知到GTX3090需要cuda11以上的版本才能正常运行,而我使用的python库pytorch为0.4.1,cuda版本为9.0,受制于当前pytorch版本,无法使用最新的显卡,那么这个是如何看出来的呢?又如何解决?
英伟达官网(参考 cuda-GPUs )并没有给出一个直接的关联关系,而是给了一个 Compute Capability ,让人摸不到头脑。
实际上这是一个中间数据,还需要另外一张表才能找到和cuda的对应关系,经过搜索我在维基百科(参考 CUDA ) 找到了答案。
同时,cuda对显卡驱动也有特定的要求,从英伟达官网(参考 cuda )继续寻找答案
我们再查询深度学习库(参考 pytorch )的版本对cuda的依赖关系
综合以上分析,GTX3090需要Compute Capability在8.6以上的cuda,而满足这个要求的cuda又只有11.0以上的版本。而cuda11版本又需要版本号>450的显卡驱动。
其实,从表中我们也可以分析出,cuda和显卡驱动基本都是向下兼容的,意味着我安装最新的cuda和显卡驱动,基本上可以支持以前的几乎所有显卡。当然了,代价是需要更新我们的python深度学习库比如pytorch,tensorflow等指定cuda的版本,否则可能会出现一些兼容问题。
所以最后我安装最新驱动,重新构建了docker,用英伟达官方提供的cuda11的作为基础镜像,参考github Docker-Ubuntu-Unity-noVNC , 更新pytorch0.4.1到1.7.1,甚至升级python版本3.5为3.9,索性兼容性还不错,只做了少量改动,问题完美解决。
https://developer.nvidia.com/cuda-GPUs
https://en.wikipedia.org/wiki/CUDA
https://pytorch.org
https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html
以上是关于显卡显卡驱动版本cuda版本和Pytorch相互之间的依赖关系的主要内容,如果未能解决你的问题,请参考以下文章
PyTorch切记:GeForce RTX 3090 显卡仅支持 CUDA 11 以上的版本!