Torch.cuda.is_available() 一直变成 False

17

我尝试了几种解决方案,这些方案指出当CUDA GPU可用并且已安装但Torch.cuda.is_available()返回False时该怎么做。它们确实有所帮助,但只是暂时的,也就是说torch.cuda-is_available()报告正常(True),但一段时间后会重新变为False。我的CUDA版本为9.0.176,显卡为GTX 1080。我应该怎么做才能永久地解决问题?

我尝试了以下方法:

https://forums.fast.ai/t/torch-cuda-is-available-returns-false/16721/5 https://github.com/pytorch/pytorch/issues/15612

注意:当torch.cuda.is_available()正常工作,但在某一时刻切换为False时,我必须重新启动计算机,然后它才能再次工作(一段时间)。

我也遇到了同样的问题,不过是在 Docker 里面。非常烦人,需要不时地重启 Docker。你找到解决方案了吗? - Raven Cheuk
5个回答

18
torch.cuda.is_available() 返回 False 的原因是 pytorchcudatoolkit 版本不兼容。

截至2022年6月,当前版本的 pytorch 兼容 cudatoolkit=11.3,而当前的 cuda toolkit 版本为 11.7来源

解决方案:

  1. 卸载 Pytorch 进行全新安装。您不能在新版本上安装旧版本而不进行强制安装(使用 pip install --upgrade --force-reinstall <package_name>)。

  2. 运行 conda install pytorch torchvision torchaudio cudatoolkit=11.3 -c pytorch 安装 pytorch。

  3. https://developer.nvidia.com/cuda-11.3.0-download-archive安装 CUDA 11.3版本。

现在可以愉快地开始了。 torch.cuda.is_available() --> True


3
+1 这解决了我的问题。我使用 CUDA 11.6 尝试过,它完美地运行了。(在这种情况下,应与 conda install pytorch torchvision torchaudio cudatoolkit=11.6 -c pytorch -c conda-forge 一起使用 cuda-11.6.0-download-archive)。 - 4-bit
我尝试了nvcc(kudatoolkit)12.2、11.3和11.6版本,但torch.cuda.is_available()始终返回"False"。我通过"lshw"命令确认我的显卡上有一块NVIDIA GPU。 - undefined
当前的pytorch版本为2.0.1,兼容CUDA 11.7CUDA 11.8。请访问https://pytorch.org/get-started/locally/以获取更多信息。 尝试使用这些CUDA版本进行操作。 在Windows上使用Anaconda安装时,命令为conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia,需要安装CUDA 11.8。 然后您需要从https://developer.nvidia.com/cuda-11-8-0-download-archive下载并安装`CUDA 11.8`。 - undefined

6

torch.cuda.is_available() 返回false,但在将 Nvidia 驱动程序安装到最新版本 436.48 后,返回True。我之前将 PyTorch 升级到1.2.0。我使用的操作系统是 Windows 10 和 Anaconda

enter image description here


2

2
我也遇到了这个问题。原因是Pytorch使用的CUDA版本与安装的Nvidia驱动程序不同步。如Joe的答案所述,解决方案是更新Nvidia驱动程序。还有一些其他重要的背景信息需要注意:
- 每个CUDA版本都需要最低的Nvidia驱动程序版本(请参见此处的兼容性表)。 - 您可以使用nvidia-smi检查您的Nvidia驱动程序版本。 - Pytorch预先打包了一个可能与您在计算机上安装的版本不同的CUDA版本。 - 您手动安装的CUDA版本是在运行nvidia-smi时显示的版本。即使您的驱动程序版本与此CUDA版本兼容,它也可能与Pytorch CUDA版本不兼容。 - 您可以通过在ipython或Python程序中打印torch.version.cuda变量来获取Pytorch CUDA版本。这是确定所需Nvidia驱动程序版本的版本。

AttributeError: module 'torch.cuda' has no attribute 'version' - Jason Harrison
2
感谢您的提醒,应该是 torch.version.cuda。我已经修改了帖子。 - Jacob Stern

1
解决方法是使用pip而不是conda重新安装pytorch。
pip install torch==1.8.1+cu101 torchvision==0.9.1+cu101 torchaudio==0.8.1 -f https://download.pytorch.org/whl/torch_stable.html

而不是

conda install pytorch==1.7.1 torchvision==0.8.2 torchaudio==0.7.2 cudatoolkit=10.1 -c pytorch

(不要在意上面的Torch版本差异;这只是为了说明。)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接