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

GCP K80虚拟机PyTorch中CUDA可用但操作报显存不足问题排查

解决PyTorch CUDA操作报OOM错误的排查步骤

我之前在GCP上用K80 GPU搭建环境时遇到过几乎一模一样的问题——明明nvidia-smi正常、cuda.is_available()返回True,但简单的CUDA操作就报内存不足。结合我的排查经验,给你几个方向:

1. 检查PyTorch与CUDA版本的兼容性

这是最常见的原因:你安装的PyTorch版本可能和CUDA 9.1不兼容,导致底层调用出错却误报为OOM。

  • CUDA 9.1对应的PyTorch版本应该是0.4.1到1.1.0之间的版本,如果你的PyTorch是最新版(比如2.x),肯定会出问题。
  • 卸载当前PyTorch,重新安装对应版本:
    • 用conda安装:
      conda install pytorch=1.0.1 torchvision cuda91 -c pytorch
      
    • 用pip安装的话,要下载对应CUDA 9.1的whl包(比如torch-1.0.1-cp36-cp36m-linux_x86_64.whl这类),再执行pip install <whl文件名>。

2. 确认是否安装了cuDNN

PyTorch依赖cuDNN来实现CUDA加速,只装CUDA Toolkit是不够的。如果缺少cuDNN,也会导致奇怪的报错:

  • 下载对应CUDA 9.1的cuDNN 7.1.x版本(要和CUDA版本严格对应)。
  • 解压后复制文件到CUDA目录:
    tar -xzvf cudnn-9.1-linux-x64-v7.1.tgz
    sudo cp cuda/include/cudnn*.h /usr/local/cuda/include
    sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
    sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*
    

3. 检查环境变量是否配置正确

确保CUDA的路径被正确添加到系统环境变量中:

  • 编辑~/.bashrc文件,添加以下内容:
    export PATH=/usr/local/cuda-9.1/bin${PATH:+:${PATH}}
    export LD_LIBRARY_PATH=/usr/local/cuda-9.1/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
    
  • 执行source ~/.bashrc生效,然后重启终端再测试。

4. 排查GPU内存是否被其他进程占用

虽然torch.randn(10)占用的显存微乎其微,但如果GPU内存被其他进程完全占满,也会触发OOM错误:

  • 运行nvidia-smi查看Processes部分,看看有没有陌生进程占用GPU。
  • 如果有,用kill -9 <进程PID>杀掉占用进程,再重新测试PyTorch操作。

5. 检查用户GPU访问权限

有时候普通用户可能没有访问GPU的权限,导致PyTorch无法正常分配显存:

  • 把当前用户加入video组:
    sudo usermod -aG video $USER
    
  • 重新登录系统后再测试。

先从这几个方向排查,应该能解决问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 04:45:28