如何处置PyTorch版本和CUDA版本不婚配的相关 (如何处置蚍蜉城)
本文目录导航:
如何处置PyTorch版本和CUDA版本不婚配的相关
当处置PyTorch与CUDA版本不婚配疑问时,关键在于了解它们之间的适配性。
首先,CUDA版本(如10.4)对应的是软件平台的级别,而GPU的计算才干(如sm_86)则是配件架构的版本。
Nvidia官方提供了具体的GPU型号与计算才干对应相关,如RTX 3090的sm_86对应CUDA 8.6架构。
选用正确的CUDA版本时,须要参考PyTorch官方的版本兼容消息。
例如,PyTorch 1.12.1允许CUDA 11.6、11.3和10.2。
在特定状况下,假设名目依赖的是较旧的PyTorch版本(如1.7.1),或者须要找寻与之兼容的CUDA版本,如CUDA-11.0。
装置时,经过pip经常使用指定的CUDA版本,如`pip install torch==1.7.1+cu110 torchvision==0.8.2+cu110 torchaudio==0.7.2 -f`。
假设驱动API版本过低,或者须要更新驱动以确保兼容。
总结来说,本文提供了一套流程,协助处置PyTorch与特定GPU(如NVIDIA GeForce RTX 3090,计算才干sm_86)之间的版本不婚配疑问,包含如何选用适合的CUDA版本和装置命令。
经常使用Zhihu On VSCode颁布。
pytorch版本,cuda版本,系统cuda版本查问和对应相关
在经常使用PyTorch启动深度学习时,版本治理和显卡兼容性是至关关键的。要审核CUDA版本和显卡驱动形态,可以经常使用以下命令在Ubuntu系统中运转:
遇到特定疑问时,如AdaIN-TF-master训练中产生的失误,如`T7ReaderException: unknown object type / typeidx: 11`,或者须要调整某些参数,如`force_8bytes_long`。
若在Python 3环境中遇到`NameError`,因为`xrange`已被`range`取代,只要将`xrange`交流为`range`即可。
在PyTorch训练中,如遇到`RuntimeError`(如`DataLoader worker exited unexpectedly`),特意是在Windows上,或者须要调整`num_workers`参数,将其设为0以防止数据加载失误。
关于`OSError: [WinError 1455] 页面文件太小`,雷同倡导将`num_workers`设置为0。
`num_workers`代表数据加载时的上班进程数量,它影响了数据加载的并行性。
假设设置为0,象征着数据将逐批加载,或者造成训练速度减慢,但可以防止一些运转时失误。
遇到`PermissionError`时,审核能否有文件权限疑问,或者须要以治理员身份运转或清算无用的conda装置。
有时,清算过时的装置包也或者有助于处置疑问。
pytorch、显卡、显卡驱动、cuda版本是如何对应的
做深度学习的小同伴们或者都会在装置环境的时刻经常遇到的cuda版本驱动版本以及和显卡是如何对应的,经常搞得特意懵懂,官方没有间接提供他们的对应相关,造成咱们在更新显卡的时刻发现原来的软件环境不兼容,产生各种奇奇异怪的疑问。
NVIDIA系列显卡做深度学习,须要在宿服务器装置显卡驱动(driver),须要在docker中装置英伟达的迷信计算库(cuda),在python中装置深度学习库(我关键用pytorch),driver依赖显卡,cuda依赖driver,pytorch依赖cuda,于是就会有一些版本依赖疑问. 最近我在将显卡从GTX2070更新到GTX3090的时刻,发现自己原来pytorch程序总会在()命令卡十分钟左右,并且还有其余意外。
起初才知到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的作为基础镜像,参考githubDocker-Ubuntu-Unity-noVNC , 更新pytorch0.4.1到1.7.1,甚至更新python版本3.5为3.9,索性兼容性还不错,只做了大修改变,疑问完美处置。
https:///wiki/CUDAhttps:///cuda/cuda-toolkit-release-notes/