Python 为什么`torch.cuda.is_available()`即使在使用cuda安装pytorch后也返回False?

Python 为什么`torch.cuda.is_available()`即使在使用cuda安装pytorch后也返回False?,python,pytorch,Python,Pytorch,在装有NVidia GeForce 820M的Windows 10 PC上 我成功安装了CUDA 9.2和cudnn 7.1, 然后按照PyTorch.org上的说明安装PyTorch 我特别使用了这个命令 pip install torch==1.4.0+cu92 torchvision==0.5.0+cu92 -f https://download.pytorch.org/whl/torch_stable.html 因为我用的是pip而不是水蟒 然而,我得到了以下信息 >>&g

在装有NVidia GeForce 820M的Windows 10 PC上 我成功安装了CUDA 9.2和cudnn 7.1, 然后按照PyTorch.org上的说明安装PyTorch

我特别使用了这个命令

pip install torch==1.4.0+cu92 torchvision==0.5.0+cu92 -f https://download.pytorch.org/whl/torch_stable.html
因为我用的是pip而不是水蟒

然而,我得到了以下信息

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

为什么会发生这种情况?

您的图形卡不支持CUDA 9.0

因为我已经看到了很多关于这类问题的问题,我正在写一个关于如何检查您的系统是否与CUDA兼容的广泛答案,特别是针对在CUDA支持下使用PyTorch。本答案的最后一部分描述了解决问题的各种环境相关选项


与CUDA一起使用PyTorch的系统要求如下:

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


1.如何检查您的GPU/图形卡是否支持特定的CUDA版本 首先,确定图形卡的型号

在继续之前,请确保您拥有NVidia图形卡AMD和英特尔图形卡不支持CUDA

NVidia在单个位置提供CUDA兼容性信息方面做得并不好。最好的资源可能是。确定支持哪些CUDA版本

  • 在大表格中找到您的图形卡型号,并注意计算能力版本。例如,GeForce 820M的计算能力为2.1
  • 在表格前面的项目符号列表中,检查图形卡的计算功能是否支持所需的CUDA版本。例如,CUDA 9.2不支持计算兼容性2.1
  • 如果您的卡不支持所需的CUDA版本,请参阅本答案第4节中的选项

    注意:计算能力是指图形卡支持的计算功能。CUDA库的较新版本依赖于较新的硬件功能,这就是为什么我们需要确定计算能力以确定支持的CUDA版本


    2.如何检查您的GPU/图形驱动程序是否支持特定版本的CUDA 图形驱动程序是允许操作系统与图形卡通信的软件。由于CUDA依赖于与图形卡的低级通信,因此您需要有最新的驱动程序才能使用最新版本的CUDA

    首先,确保系统上安装了NVidia图形驱动程序。您可以从获取系统的最新驱动程序

    如果您安装了最新的驱动程序版本,那么图形驱动程序可能支持与图形卡兼容的所有CUDA版本(请参阅第1节)。要进行验证,您可以查看中的表2。我听说最新推荐的图形驱动程序不支持最新的CUDA版本。您应该能够通过为所需的CUDA版本安装CUDA工具包并选择安装兼容驱动程序的选项来解决这个问题,尽管这通常不是必需的

    如果您不能或不想升级图形驱动程序,则可以检查当前驱动程序是否支持特定的CUDA版本,如下所示:

    在窗户上
  • 确定您当前的图形驱动程序版本(源)
  • 右键单击桌面并选择NVIDIA控制面板。从 NVIDIA控制面板菜单,选择帮助>系统信息。这个 驱动程序版本列在详细信息窗口的顶部。更多 高级用户,您还可以从 Windows设备管理器。在下面的图形设备上单击鼠标右键 显示适配器,然后选择属性。选择驱动程序选项卡,然后单击 阅读驱动程序版本。最后5位数字是英伟达驱动程序 版本号

  • 访问并向下滚动至表2。使用此表验证图形驱动程序是否足够新,以支持所需版本的CUDA
  • 在Linux/OSX上 在终端窗口中运行以下命令

    nvidia-smi
    
    这将导致如下结果

    >>> import torch
    >>> torch.cuda.is_available()
    False
    
    2020年4月4日星期六15:31:57
    +-----------------------------------------------------------------------------+
    |NVIDIA-SMI 435.21驱动程序版本:435.21 CUDA版本:10.1|
    |-------------------------------+----------------------+----------------------+
    |GPU名称持久化-M |总线Id显示A |易失性解聚。ECC|
    |风扇温度性能Pwr:使用率/上限|内存使用率| GPU Util Compute M|
    |===============================+======================+======================|
    |0 GeForce RTX 206。。。关| 00000000:01:00.0开|不适用|
    |0%35C P8 16W/175W | 502MiB/7974MiB | 1%默认值|
    +-------------------------------+----------------------+----------------------+
    +-----------------------------------------------------------------------------+
    |进程:GPU内存|
    |GPU PID类型进程名称用法|
    |=============================================================================|
    |0 1138 G/usr/lib/xorg/xorg 300MiB|
    |0 2550 G/usr/bin/compiz
    
    pip install torch_nightly -f https://download.pytorch.org/whl/nightly/cu90/torch_nightly.html