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

Ubuntu 22.04下如何让NVIDIA GPU仅用于PyTorch脚本,停止Xorg与gnome-remote-desktop-daemon占用GPU

Ubuntu 22.04下如何让NVIDIA GPU仅用于PyTorch脚本,停止Xorg与gnome-remote-desktop-daemon占用GPU

看起来你遇到的是双显卡环境下,桌面相关进程占用了NVIDIA GPU的少量内存,同时PyTorch的内存显示有点让人困惑的问题对吧?别担心,咱们一步步来解决:

一、切换到Intel核显作为桌面默认显卡

你的机器是Intel核显+NVIDIA独显的组合,当前用的是on-demand模式,这会让桌面环境偶尔调用NVIDIA GPU。要让NVIDIA GPU完全留给PyTorch用,咱们可以把Intel核显设为默认显示设备:

  • 打开终端,执行命令:sudo prime-select intel
  • 输入密码确认后,重启你的系统

重启完成后,桌面环境就会完全用Intel核显运行,Xorg和gnome-remote-desktop-daemon这类进程就不会再占用NVIDIA GPU的内存了。

二、验证切换效果

重启后,咱们来确认一下:

  • 执行prime-select query,输出应该是intel,说明默认显卡切换成功
  • 再跑nvidia-smi,你会发现之前的Xorg和gnome-remote-desktop-daemon进程已经不在GPU进程列表里了,GPU内存占用会降到很低(几乎为0)

三、确保PyTorch正确调用GPU

你提到PyTorch识别到了GPU,但显示内存占用为0,这大概率是因为脚本里没有把模型和数据转移到GPU上。记得在脚本里加上这些步骤:

# 检测是否有可用的CUDA设备
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
# 将模型转移到GPU
model = model.to(device)
# 将输入数据转移到GPU
inputs = inputs.to(device)

这样PyTorch才会真正使用NVIDIA GPU的内存,之前的0占用只是因为还没有把计算任务移到GPU上而已。

四、解决CUDA内存不足的额外建议

即使切换了显卡,你还是遇到了OOM错误,可能是因为你的batch size太大,或者模型本身占用内存较高。可以试试这些优化:

  • 减小训练的batch_size参数
  • 在训练循环的合适位置调用torch.cuda.empty_cache(),释放无用的缓存内存
  • 检查是否有其他未关闭的CUDA进程占用内存,可以用nvidia-smi查看所有GPU进程

备注:内容来源于stack exchange,提问作者dextervex

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.23 09:39:09