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

为什么显存空闲的GPU无法被PyTorch/TensorFlow调用还报显存不足?

无法使用空闲3号GPU的常见原因及排查方向
  • 设备编号映射错误
    多数深度学习框架会优先读取CUDA_VISIBLE_DEVICES环境变量的配置,该变量会重映射可见的CUDA设备编号。比如你全局设置了CUDA_VISIBLE_DEVICES=0,1,2,那么代码里写的cuda:3实际指向不存在的设备,或者会默认 fallback 到已占用的0号GPU,触发显存不足报错。可以在代码开头加入以下内容验证当前可见设备:
    import torch
    print(torch.cuda.device_count())
    print([torch.cuda.get_device_name(i) for i in range(torch.cuda.device_count())])
    
  • GPU设置了独占访问模式
    部分场景下3号GPU可能被设置为独占进程模式,哪怕当前仅占用11MB显存,其他进程也无法申请该设备的资源。可以执行命令nvidia-smi -i 3 -q | grep "Compute Mode"查看模式,如果结果为Exclusive_Process则说明是独占模式,需要管理员权限修改为默认的Default模式。
  • 显存碎片化/实际申请显存大于剩余可用
    你看到的11MB占用是当前总占用值,但如果显存存在碎片化,没有连续的大块显存空间容纳你要加载的模型张量、batch数据,也会触发OOM。另外部分框架(比如TensorFlow 1.x/2.x默认模式)会预申请整块GPU的所有显存,只要有少量显存被其他进程占用就会直接申请失败。
  • 代码设备指定错误
    如果你仅在代码中写了device = torch.device("cuda")而没有指定具体编号cuda:3,框架会默认选择编号最靠前的可用GPU,如果0/1/2号GPU已经被占满,同样会抛出OOM错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 08:48:02