RuntimeError: cuda runtime error (38) : no CUDA-capable device is detected at /pytorch/aten/src/THC/

参考链接:https://blog.csdn.net/Felaim/article/details/100516282

报错

  1. 报错信息:
    调试算法的时候报错:
    RuntimeError: cuda runtime error (38) : no CUDA-capable device is detected at /pytorch/aten/src/THC/THCGeneral.cpp:51
  2. 查看原因
    快捷键Ctrl+Alt+T呼出终端,输入nvidia-smi,得到:
    NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.
    一脸懵圈,上次不还好好的嘛,说没就没。

解决方法:

在网上查到:
首先查看一下内核信息:
可以看到确实存在不同的内核版本信息
RuntimeError: cuda runtime error (38) : no CUDA-capable device is detected at /pytorch/aten/src/THC/_第1张图片
因为Linux更新都是为了修复之前内核的bug,提供一些新的特性,如果一直使用旧的内核,还是会出现这种问题,使用下面的方法,在使用新内核的同时,也不用重新安装驱动。
第一步:安装DKMS
DynamicKernel Module Support(DKMS),可以帮助我们维护内核外的驱动程序,在内核版本变动之后可以自动重新生成新的模块。在使用dkms之前首先需要确保系统中已经安装了DKMS,在Ubuntu下可以执行下面这个命令安装。

sudo apt-get install dkms

执行下面的命令:

cd /usr/src
ls

RuntimeError: cuda runtime error (38) : no CUDA-capable device is detected at /pytorch/aten/src/THC/_第2张图片
可以看到我这里nvidia-smi的版本是440.36

第二步:重新生成对应nvidia的驱动模块

sudo dkms install -m nvidia -v 440.36

RuntimeError: cuda runtime error (38) : no CUDA-capable device is detected at /pytorch/aten/src/THC/_第3张图片
第三步:检验

nvidia-smi

RuntimeError: cuda runtime error (38) : no CUDA-capable device is detected at /pytorch/aten/src/THC/_第4张图片
可以看到用了最新的内核,nvidia-smi也没问题了,再跑一下程序,不报错啦!开开心心!

你可能感兴趣的:(深度学习环境配置)