python 为什么torch.cuda.is在安装了pytorch和cuda之后,www.example.com _available()仍然返回False?

cld4siwp  于 2022-10-30  发布在  Python
关注(0)|答案(6)|浏览(287)

在一台装有NVIDIA GeForce 820M的Windows 10 PC上,我成功安装了CUDA 9.2和cudnn 7.1,然后按照www.example.com上的说明安装了PyTorchpytorch.org:

pip install torch==1.4.0+cu92 torchvision==0.5.0+cu92 -f https://download.pytorch.org/whl/torch_stable.html

但我得到:

>>> import torch
>>> torch.cuda.is_available()
False
nafvub8i

nafvub8i1#

您的图形卡不支持CUDA 9.0。
由于我已经看到了很多关于这类问题的问题,我将撰写一个关于如何检查您的系统是否与CUDA兼容的广泛答案,特别针对使用支持CUDA的PyTorch。本答案的最后一部分描述了解决问题的各种不同情况的选项。
将PyTorch与CUDA配合使用的系统要求如下:

  • 您的显卡必须支持所需的CUDA版本
  • 您的图形卡驱动程序必须支持所需的CUDA版本
  • PyTorch二进制文件必须支持显卡的计算能力
  • 注意 *:如果您安装了预构建的二进制文件(使用pip或conda),那么在安装支持CUDA的PyTorch之前,您需要在您的系统上安装CUDA工具包或运行时。这是因为除非从源代码编译,否则PyTorch总是与CUDA库的副本一起交付的。

1.如何检查GPU/显卡是否支持特定的CUDA版本

首先,确定图形卡的型号。
在继续之前,请确保您已经拥有NVIDIA显卡。AMD和英特尔显卡不支持CUDA
NVIDIA在提供CUDA兼容性信息方面做得并不好。最好的资源可能是CUDA Wikipedia页面上的这一部分。要确定支持哪些CUDA版本
1.在大表格中找到您的显卡型号,并记下其计算能力版本。例如,GeForce 820 M的计算能力为2.1。
1.在表格前面的项目符号列表中,检查您的显卡的计算能力是否支持所需的CUDA版本。例如,CUDA 9.2不支持计算兼容性2.1。
如果您的卡不支持所需的CUDA版本,请参阅本答案第4部分中的选项。

  • 注意 *:计算能力是指显卡支持的计算功能。较新版本的CUDA库依赖于较新的硬件功能,因此我们需要确定计算能力,以便确定受支持的CUDA版本。

2.如何检查GPU/显卡驱动程序是否支持特定的CUDA版本

图形驱动程序是允许操作系统与图形卡进行通信的软件。由于CUDA依赖于与图形卡的低级别通信,因此您需要有最新的驱动程序才能使用最新版本的CUDA。
首先,确保您的系统上安装了NVIDIA显卡驱动程序。您可以从NVIDIA's website获取适用于您系统的最新驱动程序。
如果您安装了最新版本的驱动程序,那么您的显卡驱动程序 * 可能 * 支持与您的显卡兼容的所有CUDA版本(请参阅第1节)。要验证,您可以查看CUDA release notes中的表2。在极少数情况下,我听说最新推荐的显卡驱动程序不支持最新的CUDA版本。您应该能够通过安装所需CUDA版本的CUDA工具包并选择安装兼容驱动程序的选项来解决此问题,尽管这通常不是必需的。
如果您无法或不想升级图形驱动程序,则可以检查当前驱动程序是否支持特定的CUDA版本,如下所示:

在Windows上

1.确定您当前的图形驱动程序版本(源代码https://www.nvidia.com/en-gb/drivers/drivers-faq/
右键单击桌面并选择NVIDIA控制面板。从NVIDIA控制面板菜单中选择帮助〉系统信息。详细信息窗口顶部列出了驱动程序版本。对于更高级的用户,您也可以从Windows设备管理器中获取驱动程序版本号。2右键单击显示适配器下的图形设备,然后选择“属性”。3选择“驱动程序”选项卡并读取驱动程序版本。最后5位数字是NVIDIA驱动程序版本号。
1.访问CUDA release notes并向下滚动到表2.使用此表验证您得显卡驱动程序是否足够新,以支持所需得CUDA版本.

在Linux/OS X上

在终端窗口中运行以下命令

nvidia-smi

这将导致类似于以下内容的结果

Sat Apr  4 15:31:57 2020       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 435.21       Driver Version: 435.21       CUDA Version: 10.1     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GeForce RTX 206...  Off  | 00000000:01:00.0  On |                  N/A |
|  0%   35C    P8    16W / 175W |    502MiB /  7974MiB |      1%      Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|    0      1138      G   /usr/lib/xorg/Xorg                           300MiB |
|    0      2550      G   /usr/bin/compiz                              189MiB |
|    0      5735      G   /usr/lib/firefox/firefox                       5MiB |
|    0      7073      G   /usr/lib/firefox/firefox                       5MiB |
+-----------------------------------------------------------------------------+

Driver Version: ###.##是您的图形驱动程序版本。在上面的示例中,驱动程序版本是435.21
CUDA Version: ##.#是您的图形驱动程序支持的最新CUDA版本。在上面的示例中,图形驱动程序支持CUDA 10.1 * 以及10.1* 之前的所有兼容CUDA版本。

  • 注 *:此表中显示的CUDA Version表示您的系统上实际安装了CUDA工具包或运行时。这仅表示您的显卡驱动程序与最新版本的CUDA兼容。

为确保您的驱动程序支持所需的CUDA版本,您可以访问CUDA release notes页面上的表3。

3.如何检查特定版本的PyTorch是否与您的GPU/显卡计算能力兼容

即使您的显卡支持所需的CUDA版本,也有可能预编译的PyTorch二进制文件没有编译为支持您的计算能力。例如,在PyTorch 0.3.1 support for compute capability <= 5.0 was dropped中。

首先,确认您的图形卡和驱动程序都支持所需的CUDA版本(请参阅上面的第1节和第2节),本节中的信息假设情况确实如此。

检查PyTorch是否支持您的计算能力的最简单的方法是安装支持CUDA的PyTorch版本,并从python解释器运行以下命令

>>> import torch
>>> torch.zeros(1).cuda()

如果您收到一条错误消息,内容为

Found GPU0 XXXXX which is of cuda capability #.#.
PyTorch no longer supports this GPU because it is too old.

那么这意味着PyTorch没有编译为支持您的计算能力。如果这运行没有问题,那么您应该很好去。

  • 更新 * 如果您在一个使用较新GPU的系统上安装旧版本的PyTorch,那么旧版本的PyTorch编译时可能没有支持您的计算能力。假设您的GPU支持PyTorch使用的CUDA版本,那么您应该能够使用所需的CUDA版本从源代码重新构建PyTorch,或者升级到支持更新的计算能力。

4.结论

如果您的显卡和驱动程序支持所需的CUDA版本(第1节和第2节),但PyTorch二进制文件不支持您的计算能力(第3节),则您的选项为

  • 从源代码编译PyTorch并支持您的计算能力(请参阅此处)
  • 安装不支持CUDA的PyTorch(仅CPU)
  • 安装支持您的计算功能的旧版本PyTorch二进制文件(不推荐,因为PyTorch 0.3.1在这一点上已经非常过时)。预构建的二进制文件中从未支持3.X之前的AFAIK计算功能
  • 升级您的显卡

如果您的显卡不支持所需的CUDA版本(第1部分),则您的选项为

  • 安装不支持CUDA的PyTorch(仅CPU)
  • 安装支持CUDA版本的旧版PyTorch,该版本受您的显卡支持(如果二进制文件不支持您的计算能力,可能仍需要从源代码编译)
  • 升级您的显卡
v440hwme

v440hwme2#

要解决这个问题,下面的方法为我解答了:
1-首先你必须更新Anaconda。
2-在笔记本中,根据您的系统选择以下选项。

https://pytorch.org/

Windows示例:(这可能需要一些时间。请耐心等待)

conda install pytorch torchvision torchaudio cudatoolkit=10.2 -c pytorch

3-通过以下站点查找并安装适用于您系统的最新图形卡:

https://www.nvidia.com/Download/index.aspx

4-支持CUDA级别的GPU和显卡。

anauzrmj

anauzrmj3#

当你的Pytorch版本支持不同的CUDA时,同样的错误也会出现。例如,我的Pytorch版本支持CUDA 8.0,但我安装的是CUDA 9.0。为了解决这个问题,我必须将我的Pytorch升级到cu90,如下所示:

pip install torch_nightly -f https://download.pytorch.org/whl/nightly/cu90/torch_nightly.html

参考:here

kq4fsx7k

kq4fsx7k4#

我也想分享我的经验,特别是在WSL2环境中。
尽管我已经安装了正确的和最新的驱动程序后,guide提供的NVidia here,我的WSL是无法检测任何GPU都在PyTorch和整个环境。
我的GPU是Nvidia GeForce RTX 1650 Ti,它没有在上面的Wiki链接中列出,但实际上显示在Nvidia page中。
降级到在this NVidia link找到的旧驱动程序版本,即Driver Version: 472.39帮助了我。现在PyTorch可以正确检测驱动程序,以及我可以运行需要GPU访问的容器,因为它被正确找到和使用。
希望这能对我这种情况的人有所帮助。

cnjp1d6j

cnjp1d6j5#

只是面对同样的GPU(最后可用的驱动程序安装),以上都没有帮助,搜索了几个小时的谷歌也没有运气。这里是什么解决了我:
1.删除在Anaconda中创建的所有环境。卸载Anaconda并删除“user”文件夹中的所有相关文件夹
1.安装Anaconda
1.将conda-forge添加到通道https://conda-forge.org/docs/user/introduction.html
1.浏览NVIDIA https://docs.nvidia.com/cuda/cuda-installation-guide-microsoft-windows/index.html的安装指南
1.选择正确的配置并运行conda安装https://pytorch.org/get-started/locally/如果安装失败,请使用已知的failed with initial frozen solve. Retrying with flexible solve.,请使用pip3 install而不是conda
1.在Jupyter笔记本电脑中享受您的GPU:
导入手电筒torch.cuda.is_available()真

ufj5ltwl

ufj5ltwl6#

好吧,这是我的经验,我的系统是ubuntu 20.4,gpu - nvidi gtx 1060
当我去和改变运行'Nvidia X服务器设置'应用程序下找到的PRIME配置文件Nvidia按需或互联网(节能模式)被选中
将torch.cuda.is_available()设为False
我改变了GPU模式为“NVIDIA(性能模式),然后我得到了真
NVIDIA X Server Setting-GUI

相关问题