Nvidia

如何在無頭節點上調整 NVIDIA GPU 風扇速度?

  • December 24, 2021

如何在執行 Linux 的無頭節點上控制多個消費級 NVIDIA GPU(例如 Titan 和 1080 Ti)的風扇速度?

以下是一個簡單的方法,不需要編寫腳本、連接假顯示器或擺弄,可以通過 SSH 執行以控制多個 NVIDIA GPU 的風扇。它已經在 Arch Linux 上進行了測試。

創建 xorg.conf

sudo nvidia-xconfig --allow-empty-initial-configuration --enable-all-gpus --cool-bits=7

這將為每個 GPU 創建一個/etc/X11/xorg.conf條目,類似於手動方法。

**注意:**一些發行版(Fedora、CentOS、Manjaro)有額外的配置文件(例如 in/etc/X11/xorg.conf.d//usr/share/X11/xorg.conf.d/),它們覆蓋xorg.conf並設置AllowNVIDIAGPUScreens. 此選項與本指南不兼容。額外的配置文件應該被修改或刪除。X11 日誌文件顯示已載入哪些配置文件。

替代方案:手動創建 xorg.conf

辨識您的卡的 PCI ID:

nvidia-xconfig --query-gpu-info

查找PCI BusID欄位。請注意,這些與核心中報告的匯流排 ID 不同。

或者,執行sudo startx,打開/var/log/Xorg.0.log(或 startX 在“日誌文件:”行下的輸出中列出的任何位置),然後查找NVIDIA(0): Valid display device(s) on GPU-<GPU number> at PCI:<PCI ID>.

編輯/etc/X11/xorg.conf

xorg.conf以下是三 GPU 機器的範例:

Section "ServerLayout"
       Identifier "dual"
       Screen 0 "Screen0"
       Screen 1 "Screen1" RightOf "Screen0"
       Screen 1 "Screen2" RightOf "Screen1"
EndSection

Section "Device"
   Identifier     "Device0"
   Driver         "nvidia"
   VendorName     "NVIDIA Corporation"
   BusID          "PCI:5:0:0"
   Option         "Coolbits"       "7"
   Option         "AllowEmptyInitialConfiguration"
EndSection

Section "Device"
   Identifier     "Device1"
   Driver         "nvidia"
   VendorName     "NVIDIA Corporation"
   BusID          "PCI:6:0:0"
   Option         "Coolbits"       "7"
   Option         "AllowEmptyInitialConfiguration"
EndSection

Section "Device"
   Identifier     "Device2"
   Driver         "nvidia"
   VendorName     "NVIDIA Corporation"
   BusID          "PCI:9:0:0"
   Option         "Coolbits"       "7"
   Option         "AllowEmptyInitialConfiguration"
EndSection

Section "Screen"
       Identifier     "Screen0"
       Device         "Device0"
EndSection

Section "Screen"
       Identifier     "Screen1"
       Device         "Device1"
EndSection

Section "Screen"
       Identifier     "Screen2"
       Device         "Device2"
EndSection

必須與我們在上一步中確定的BusID匯流排 ID 匹配。AllowEmptyInitialConfiguration即使沒有連接顯示器,該選項也允許 X 啟動。該選項Coolbits允許控制風扇。它還可以允許超頻。

**注意:**一些發行版(Fedora、CentOS、Manjaro)有額外的配置文件(例如 in/etc/X11/xorg.conf.d//usr/share/X11/xorg.conf.d/),它們覆蓋xorg.conf並設置AllowNVIDIAGPUScreens. 此選項與本指南不兼容。額外的配置文件應該被修改或刪除。X11 日誌文件顯示已載入哪些配置文件。

編輯/root/.xinitrc

nvidia-settings -q fans
nvidia-settings -a [gpu:0]/GPUFanControlState=1 -a [fan:0]/GPUTargetFanSpeed=75
nvidia-settings -a [gpu:1]/GPUFanControlState=1 -a [fan:1]/GPUTargetFanSpeed=75
nvidia-settings -a [gpu:2]/GPUFanControlState=1 -a [fan:2]/GPUTargetFanSpeed=75

為了方便起見,我使用 .xinitrc 來執行 nvidia-settings,儘管可能還有其他方法。第一行將列印出系統中的每個 GPU 風扇。在這裡,我將風扇設置為 75%。

發射 X

sudo startx -- :0

您可以從 SSH 執行此命令。輸出將是:

Current version of pixman: 0.34.0
   Before reporting problems, check http://wiki.x.org
   to make sure that you have the latest version.
Markers: (--) probed, (**) from config file, (==) default setting,
   (++) from command line, (!!) notice, (II) informational,
   (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
(==) Log file: "/var/log/Xorg.0.log", Time: Sat May 27 02:22:08 2017
(==) Using config file: "/etc/X11/xorg.conf"
(==) Using system config directory "/usr/share/X11/xorg.conf.d"

 Attribute 'GPUFanControlState' (pushistik:0[gpu:0]) assigned value 1.

 Attribute 'GPUTargetFanSpeed' (pushistik:0[fan:0]) assigned value 75.


 Attribute 'GPUFanControlState' (pushistik:0[gpu:1]) assigned value 1.

 Attribute 'GPUTargetFanSpeed' (pushistik:0[fan:1]) assigned value 75.


 Attribute 'GPUFanControlState' (pushistik:0[gpu:2]) assigned value 1.

 Attribute 'GPUTargetFanSpeed' (pushistik:0[fan:2]) assigned value 75.

監控溫度和時鐘速度

nvidia-smi並可nvtop用於觀察溫度和功耗。較低的溫度將使卡的時鐘頻率更高並增加其功耗。您可以使用它sudo nvidia-smi -pl 150來限制功耗並保持顯卡涼爽,或用於sudo nvidia-smi -pl 300讓它們超頻。如果給定 150W,我的 1080 Ti 以 1480 MHz 執行,如果給定 300W,則超過 1800 MHz,但這取決於工作負載。nvidia-smi -q您可以使用或更具體地監控他們的時鐘速度,watch 'nvidia-smi -q | grep -E "Utilization| Graphics|Power Draw"'

返回到自動風扇管理。

重啟。我還沒有找到另一種使風扇自動執行的方法。

引用自:https://unix.stackexchange.com/questions/367584