在装有NVidia GeForce 820M的Windows 10 PC上 我成功安装了CUDA 9.2和cudnn 7.1, 然后按照pytorch.org上的说明安装PyTorch。
具体地说,我使用了命令
select * into newtable from queue_db
因为我使用的是pip而不是Anaconda。
但是我得到以下内容
delete from queue_db
为什么会这样?
答案 0 :(得分:17)
您的图形卡不支持CUDA 9.0。
由于我已经看到很多涉及此类问题的问题,因此我正在就如何检查您的系统是否与CUDA兼容问题写了一个广泛的答案,专门针对使用具有CUDA支持的PyTorch。该答案的最后一部分介绍了各种解决问题的方法,具体取决于情况。
将PyTorch与CUDA一起使用的系统要求如下:
注意:如果安装预构建的二进制文件(使用pip或conda),则不需要无需在安装系统之前安装CUDA工具包或运行时具有CUDA支持的PyTorch。这是因为PyTorch除非从源代码进行编译,否则始终与CUDA库的副本一起提供。
首先,确定图形卡的型号。
在继续之前,请确保您拥有NVidia显卡。 AMD和Intel显卡不支持CUDA 。
NVidia在单个位置提供CUDA兼容性信息方面做得不好。最好的资源可能是this section on the CUDA Wikipedia page。确定支持哪些版本的CUDA
如果您的卡不支持所需的CUDA版本,请参阅此答案第4部分中的选项。
注意:计算能力是指图形卡支持的计算功能。较新版本的CUDA库依赖于较新的硬件功能,因此,我们需要确定计算能力才能确定受支持的CUDA版本。
图形驱动程序是允许您的操作系统与图形卡进行通信的软件。由于CUDA依赖于与图形卡的低级通信,因此,您需要具有最新的驱动程序才能使用最新版本的CUDA。
首先,请确保您已在系统上安装了NVidia图形驱动程序。您可以从NVidia's website获取适用于您系统的最新驱动程序。
如果安装了最新的驱动程序版本,则图形驱动程序可能支持与图形卡兼容的每个CUDA版本(请参阅第1节)。要进行验证,可以检查CUDA release notes中的表2。 In rare cases我听说过建议使用的最新图形驱动程序不支持最新的CUDA版本。您可以通过安装所需CUDA版本的CUDA工具包并选择安装兼容驱动程序的选项来解决此问题,尽管通常不需要这样做。
如果您不能升级图形驱动程序,或者您不想升级图形驱动程序,则可以检查当前驱动程序是否支持特定的CUDA版本,如下所示:
右键单击您的桌面,然后选择NVIDIA控制面板。来自 在“ NVIDIA控制面板”菜单上,选择“帮助”>“系统信息”。的 驱动程序版本在“详细信息”窗口的顶部列出。欲了解更多 高级用户,您还可以从 Windows设备管理器。在图形设备上右键单击 显示适配器,然后选择属性。选择驱动程序选项卡,然后 阅读驱动程序版本。后5位数字是NVIDIA驱动程序 版本号。
在终端窗口中运行以下命令
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页上的表2。
即使您的图形卡支持所需版本的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,或者升级到支持新的计算功能而编译的PyTorch的最新版本。
如果您的图形卡和驱动程序支持所需版本的CUDA(第1和2节),但PyTorch二进制文件不支持您的计算能力(第3节),那么您的选择是
如果您的图形卡不支持所需的CUDA版本(第1节),那么您的选择是
答案 1 :(得分:0)
当您的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