Ubuntu 24.04 上让 GPU 持续保持高性能
Ubuntu 24.04 上让 GPU 持续保持高性能,核心是防止内核自动更新导致驱动失效,并正确配置电源管理策略。 这个问题通常分两层:一是驱动别被系统更新搞挂,二是让 GPU 别老在低功耗状态摸鱼。
锁定内核版本
Ubuntu 24.04 默认开启自动更新,内核一变,NVIDIA 驱动可能编译失败或不兼容,GPU 直接罢工。最有效的办法是把当前内核锁住。
查看当前内核:
uname -r
锁定内核镜像和头文件:
sudo apt-mark hold linux-image-$(uname -r) linux-headers-$(uname -r)
这样 apt upgrade 时就不会动内核了。
如果之前已经更新过内核导致驱动失效,先用 dpkg -l | grep linux-image 找到旧内核,重启进旧内核后再锁定,然后重新安装驱动。
检查电源与性能模式
GPU 占用率 100% 但功耗上不去,或功耗一直很低,多半是电源策略没放开。
查看当前功耗和限制:
nvidia-smi -q -d POWER
启用持久化模式并设置最大性能:
sudo nvidia-smi -pm 1
sudo nvidia-smi -pl <最大功耗值>
-pl 的值要看你显卡的 TDP,比如 RTX 3080 可以设 320W 或更高。
检查 PowerMizer 模式:
nvidia-settings -a [gpu:0]/GPUPowerMizerMode=1
设为 1 是最大性能优先,0 是自适应。
笔记本用户特别注意
如果你是笔记本,功耗卡在低档(比如 50W)上不去,很可能是 nvidia-powerd 没跑起来。这是 NVIDIA Dynamic Boost 的关键组件,负责和笔记本固件协商功耗窗口。
检查它是否运行:
systemctl status nvidia-powerd
如果没运行,需要手动补上 systemd unit 和 D-Bus 配置,然后 sudo systemctl enable --now nvidia-powerd。修复后功耗能从 50W 放开到 115W 满血。
注意:nvidia-smi -pl 对笔记本 GeForce 显卡普遍不支持,功耗由整机固件管,别在这上面浪费时间。判断真实上限要看 power.draw 实际能到多少,别被 limit 字段误导。
排查驱动与内核模块
如果 nvidia-smi 报错或 GPU 识别不到,按这个顺序查:
确认驱动加载:
lsmod | grep nvidia
sudo modprobe nvidia
查看内核日志:
dmesg | grep nvidia
常见错误是驱动与内核版本不匹配,或者 Secure Boot 阻止了未签名模块加载。
如果驱动挂了,重装:
sudo apt purge nvidia-*
sudo ubuntu-drivers autoinstall
sudo reboot
验证是否生效
跑个压测,看功耗和频率能不能上去:
nvidia-smi --query-gpu=power.draw,clocks.sm,utilization.gpu --format=csv -l 1
跑训练或大矩阵运算时,功耗和频率应该能明显拉高。如果利用率 100% 但功耗上不去,说明还是被某个功耗墙卡住了。
驱动和内核的配合很关键,要不要继续看看如何查看当前内核版本?或者驱动安装失败常见原因有哪些?