我正在运行一个带有 Nvidia GPU 的无头服务器。即使 GPU 没有执行任何工作,它也消耗大约 25 瓦的功率:
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 430.26 Driver Version: 430.26 CUDA Version: 10.2 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 GeForce GTX 950 Off | 00000000:01:00.0 Off | N/A |
| 0% 61C P0 26W / 110W | 0MiB / 2001MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| No running processes found |
+-----------------------------------------------------------------------------+
当 GPU 不使用时,有没有办法完全关闭 GPU 的电源输送?
我尝试过
sudo prime-select intel
哪种方法确实会导致nvidia-smi
停止工作,但连接到墙上的功率计显示的功耗与选择的任一方法intel
完全相同nvidia
。
完全移除 GPU 可降低约 30 瓦的功耗,这一点是预期的。
主要目的是节省空闲操作期间的电力和成本,并可选择在需要时启动 GPU(通过 ssh 远程)。
答案1
可以观察到,GPU 使用的是性能模式 P0,该模式下显卡的功耗非常高。在空闲模式下,它最好调回到 P8 模式,该模式下功耗较低。
我按照以下步骤更改行为。假设您使用的是 Linux:
您需要拥有该机器的 sudo 权限。首先,启用持久模式:
sudo nvidia-smi -pm 1
然后,重置 GPU 的时钟:
sudo nvidia-smi -rgc
注意:要了解有关这些命令的更多信息,请输入
nvidia-smi --help
答案2
这些 OPTIMUS 组合解决方案在设计时充分考虑了 Windows 操作系统。
从之前的观察来看,NVIDIA 显卡似乎在 Windows 操作系统上完全关闭。我的假设是 BIOS 处理来自 Windows 操作系统的调用的方式不同而且它应该。
我现在没有这个来测试这个方法,但仍然值得一试。
方法是先禁用ACPI 开放系统互连 内置操作系统供应商字符串然后报告Windows 7的作为当前操作系统。有点欺骗 BIOS...Linux 内核默认一直这样做,但这是一种更可控的方法。
要做到这一点,第一的/etc/default/grub
像这样编辑:
sudo nano /etc/default/grub
然后,添加选项acpi_osi=!
并acpi_osi=\"Windows 2009\"
像GRUB_CMDLINE_LINUX_DEFAULT
这样:
GRUB_CMDLINE_LINUX_DEFAULT="quiet acpi_osi=! acpi_osi=\"Windows 2009\""
然后Ctrl,按+x然后y按 prss 然后按 保存并关闭文件Enter。
在那之后,像这样更新 GRUB:
sudo update-grub
最后,重新启动系统并测试现在禁用 NVIDIA 卡是否以不同的方式进行。
然而,这种方法在开源驱动程序中可能具有更高的成功率新和VGA 转换器比专有的 NVIDIA 驱动程序更好。
如需进一步了解,请参阅内核参数。
答案3
您可以尝试使用其中一个PowerMizerMode
可用,看看是否能让您的系统进入 P8 状态
$ nvidia-settings -a "[gpu:0]/GPUPowerMizerMode=<your no.>"
请注意PowerMizerMode
s 和P 状态可用性因系统而异。使用
$ nvidia-settings -q GpuPowerMizerMode
检查一下。
或者您也可以尝试强制一些参数
- 通过功率限制
nvidia-smi -i 0 -pl 10
(不确定它是否有效)。 GPUGraphicsClockOffset
,,GPUMemoryTransferRateOffset
通过nvidia-settings
。- 通过
xorg.conf
,參考。
您可能需要重新启动来测试选项。
有关的:
- nvidia - 空闲的 GTX 1080 显卡功耗高
- https://gist.github.com/DavidMetcalfe/fabbd2ddcb6ba4927269f6f0db31a92f
- https://forums.developer.nvidia.com/t/gtx-1070-driver-4-15-25-performance-mode-p0-does-not-automatically-downshift-to-idle-p8-after/69238
- https://github.com/devonkinghorn/linux-nvidia-dynamic-power-management-setup