【问题标题】:How to downgrade from CUDA 11.4 to 10.2 & add sm_35 - CUDA error: no kernel image is available for execution on the device如何从 CUDA 11.4 降级到 10.2 并添加 sm_35 - CUDA 错误:没有可在设备上执行的内核映像
【发布时间】:2021-11-20 15:51:46
【问题描述】:

我正在尝试在 Pytorch 上运行一段代码,但出现错误:

RuntimeError: CUDA error: no kernel image is available for execution on the device

我已将问题范围缩小为 CUDA 版本不匹配。我的机器有 2 个 GPU: GeForce GTX 650(计算能力 3.0)和 Tesla K40c(计算能力 3.5)。我在这里检查了计算能力:https://developer.nvidia.com/cuda-gpus。 我的nvidia-smi 命令给出以下内容:

nvidia-smi output(驱动版本:470.57.02 & CUDA 版本:11.4)

虽然我的nvcc -V 命令给出以下内容:

nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2019 NVIDIA Corporation
Built on Sun_Jul_28_19:07:16_PDT_2019
Cuda compilation tools, release 10.1, V10.1.243

存在 10.1 版本是因为我尝试安装该 CUDA 版本,特别是按照其他地方的说明(例如:https://medium.com/@anarmammadli/how-to-install-cuda-10-2-cudnn-7-6-5-and-samples-on-ubuntu-18-04-2493124478ca

另外,我已经安装了cudatoolkitconda,等等我的conda list 我有以下条目:

...
cudatoolkit               10.1.243             h6bb024c_0
...

按照https://github.com/moi90/pytorch_compute_capabilities/blob/main/table.md我也安装了1.8.0 PyTorch版本。

但是,在 Python 3.7.11 中:

Python 3.7.11 (default, Jul 27 2021, 14:32:16)
[GCC 7.5.0] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import torch
>>> torch.__version__
'1.8.1'
>>> torch.version.cuda
'10.1'
>>> torch.cuda.get_arch_list()
['sm_37', 'sm_50', 'sm_60', 'sm_61', 'sm_70', 'sm_75', 'compute_37']
>>> torch.cuda.is_available()
True

我没有可用的sm_35,我需要使用 Tesla K40。我相信这就是我不断收到CUDA error: no kernel image is available for execution on the device 错误的原因。对于 CUDA 10.2 版,我也尝试了上述所有方法,结果相同。

【问题讨论】:

  • 您需要找到并安装a version of PyTorch that is built with support for cc3.5。你已经安装的驱动没问题。
  • 看来我需要Pytorch 1.5 之前的版本?
  • 给定 Pytorch 版本的二进制支持不是 CUDA 工具包或 Pytorch 的功能(在支持范围内),而是 Pytorch 开发人员选择分发的二进制支持。更喜欢牺牲较旧的硬件支持以换取较小的二进制包大小。您可能可以自己使用 CUDA 10.x 工具包构建更现代的 Pytorch 版本。如果不是,您将不得不接受他们给予的东西,那将是非常古老的

标签: pytorch gpu


【解决方案1】:

我已经解决了我的问题。正如 cmets 中所述,我需要一个支持 sm_35 计算能力的 PyTorch 版本。它与当前的 CUDA 版本关系不大。最后,我找到了这些二进制文件:

https://blog.nelsonliu.me/2020/10/13/newer-pytorch-binaries-for-older-gpus/

我终于通过创建一个新环境并运行解决了这个问题:

pip install torch==1.3.1+cu92 -f https://nelsonliu.me/files/pytorch/whl/torch_stable.html

【讨论】:

    猜你喜欢
    • 2021-08-21
    • 2018-09-21
    • 2021-04-20
    • 2021-09-17
    • 2019-08-27
    • 2020-07-04
    • 1970-01-01
    • 2013-08-08
    • 2020-11-23
    相关资源
    最近更新 更多