下面分两部分说明 GPU 锁频的“为什么”和“怎么做”,并给出 Linux、Windows、macOS 三大平台最常用的查看频率、最大频率及锁频指令或 GUI 路径,可直接复制使用。
一、为什么要给 GPU 锁频
1. 消除频率抖动带来的延迟毛刺
默认的 GPU Boost(NVIDIA)/ PowerTune(AMD)会根据负载、温度、功耗墙实时升降频。深度学习训练、实时音视频、云游戏、金融行情图等延迟敏感业务,在毫秒级甚至微秒级就可能出现卡顿。锁频后可把抖动压到最低。
2. 跑分/压测/实验可重复
固定频率后,benchmark 成绩不会因为温度差异而上下浮动,便于横向对比。
3. 整机功耗上限可控
在机柜/机房环境里,把全部 GPU 锁在同一频率,可一次性算出最坏功耗,避免电源过载。
4. 虚拟化/多租户公平性
云厂商在同一宿主机上把 GPU 锁频,防止“热卡”因为温度高而降频,导致租户的算力 SLA 不一致。
代价:功耗与发热会逼近 TDP 上限,散热、电费、噪音需重新评估。
二、各系统查看频率、最大频率及锁频方法
为方便查阅,按“查看当前频率 → 查看支持的最大频率 → 锁频/解锁”三步给出最简命令。
1. Linux(服务器/桌面通用)
显卡品牌 | 查看当前频率 | 查看最大频率 | 锁频命令 | 解锁命令 | |
---|---|---|---|---|---|
NVIDIA | nvidia-smi --query-gpu=clocks.current.graphics --format=csv,noheader,nounits | nvidia-smi -q -d SUPPORTED_CLOCKS 或 nvidia-smi --query-gpu=clocks.max.gr,clocks.max.mem --format=csv,noheader,nounits | 1. 查支持的最高 Application Clocks | sudo nvidia-smi -rgc | |
AMD (ROCm) | rocm-smi --showcurrentclocks | rocm-smi --showmaxclocks | sudo rocm-smi --setsclk 3 把 level 3 设为固定档 | sudo rocm-smi --resetclocks | |
Intel iGPU | sudo intel_gpu_frequency | sudo intel_gpu_frequency -m | sudo intel_gpu_frequency -f 1300 | sudo intel_gpu_frequency -d |
提示:
NVIDIA 需要先把 Persistence Mode 打开(`sudo nvidia-smi -pm 1`),否则驱动在空闲时会掉电导致锁频失效。
对 AMD,如果系统没有 `rocm-smi`,可直接写 sysfs:`echo "manual" | sudo tee /sys/class/drm/card0/device/power_dpm_force_performance_level && echo 3 | sudo tee /sys/class/drm/card0/device/pp_dpm_sclk` 把 level 3 锁死。
2. Windows
显卡品牌 | 查看当前频率 | 查看最大频率 | 锁频方法 | 解锁方法 |
---|---|---|---|---|
NVIDIA | GPU-Z 或 MSI Afterburner OSD | GPU-Z 查看 “Boost” 字段 | MSI Afterburner → Curve Editor → 拉一条水平线即为锁频;或新版驱动直接在 NVIDIA 控制面板 → 性能 → 调整 GPU 频率偏移 | MSI Afterburner → Reset / 恢复默认 |
AMD | Radeon Overlay (Ctrl+Shift+O) | Radeon Software → 性能 → 调节 → 最大频率 | Radeon Software → 性能 → 调节 → Tuning Control → Manual → Min/Max Frequency 设为同一值 | 恢复默认 |
3. macOS(Apple Silicon 或 Intel Mac + eGPU)
查看当前频率 | 查看最大频率 | 锁频方法 | ||
---|---|---|---|---|
`sudo powermetrics --samplers gpu_power -n 1 | grep "GPU freq"`(Apple Silicon) | Apple Silicon 目前无法手动锁频,系统固件完全控制;Intel Mac + AMD eGPU 可用 radeontop 查看 | 无官方接口,需关闭 SIP 后改写电源参数,风险极高,不推荐 |
三、一键脚本示例(Linux + NVIDIA,开机自启锁频)
1. 开启持久化
sudo nvidia-smi -pm 1
2. 取当前卡 0 的最高 memory & graphics clock
MEM=$(nvidia-smi -i 0 --query-gpu=clocks.max.mem --format=csv,noheader,nounits)
GRA=$(nvidia-smi -i 0 --query-gpu=clocks.max.gr --format=csv,noheader,nounits)
3. 锁 application clock
sudo nvidia-smi -ac $MEM,$GRA
4. 锁 graphics clock(可选,部分驱动版本要求)
sudo nvidia-smi -lgc $GRA
把以上四行写进 `/etc/rc.local` 或做成 systemd service,即可开机即锁频。
解锁只需执行:
sudo nvidia-smi -rac 恢复 application clock
sudo nvidia-smi -rgc 恢复 graphics clock
小结
查看频率 → Linux 用 `nvidia-smi`/`rocm-smi`/`intel_gpu_frequency`,Windows 用 GPU-Z/Afterburner。
锁频目的 → 消除抖动、跑分可复现、上限功耗可控、多租户公平。
锁频风险 → 功耗、温度、噪音飙升,务必同步检查机房/电源/散热。