You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu16.04锁屏后Spyder无法识别GPU,求替代重启的初始化方案

解决Ubuntu休眠后Spyder中PyTorch无法识别GPU的问题

我之前也碰到过一模一样的情况——系统休眠后终端nvidia-smi能看到GPU,但Spyder里PyTorch就是检测不到,不用重启电脑的话,可以试试这几个方法:

  • 直接重启Spyder进程
    这是最简单的方案,关闭当前Spyder窗口再重新打开。因为程序启动时会重新初始化CUDA环境,休眠后新启动的Spyder进程应该能重新识别到GPU资源。很多时候这个方法就管用,不用折腾别的。

  • 在Spyder中手动重置CUDA上下文
    如果不想重启Spyder,可以在控制台里执行以下代码强制重新初始化GPU连接:

    import torch
    # 清理CUDA缓存
    torch.cuda.empty_cache()
    # 手动指定并激活两块GPU
    torch.cuda.device(0)
    torch.cuda.device(1)
    # 验证是否识别成功
    print(f"检测到的GPU数量: {torch.cuda.device_count()}")
    

    这段代码会清空CUDA的缓存,重新建立和GPU设备的连接,大概率能让PyTorch重新检测到GPU。

  • 重启NVIDIA持久化服务
    休眠可能导致NVIDIA的持久化进程异常,在终端执行以下命令重启相关服务:

    sudo systemctl restart nvidia-persistenced
    # 如果上面的命令无效,试试这个
    sudo systemctl restart nvidia-fallback.service
    

    老版本Ubuntu可能需要用service命令:

    sudo service nvidia-persistenced restart
    

    重启服务后回到Spyder,再运行PyTorch的GPU检测代码,应该就能识别了。

  • 清理占用GPU的残留进程
    有时候休眠会留下一些占用GPU的僵尸进程,用nvidia-smi查看进程列表:

    nvidia-smi
    

    找到列表里的PID(进程号),然后用命令杀掉:

    sudo kill -9 [PID]
    

    替换[PID]为实际的进程号,杀掉后重启Spyder,GPU就能被重新识别了。

按这个顺序试下来,基本不用重启电脑就能解决问题。

内容的提问来源于stack exchange,提问作者innuendo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 10:08:18