Linuxを実行しているヘッドレスノードで、複数の消費者NVIDIA GPU(Titanや1080 Tiなど)のファン速度をどのように制御しますか?
ベストアンサー1
以下は、SSHを実行して複数のNVIDIA GPUのファンを制御するためのスクリプト、偽のモニター接続、または操作を必要としない簡単な方法です。 Arch Linuxでテストされました。
xorg.confの生成
sudo nvidia-xconfig --allow-empty-initial-configuration --enable-all-gpus --cool-bits=7
これにより、/etc/X11/xorg.conf
手動の方法と同様に、各GPUのエントリが作成されます。
メモ:一部のディストリビューション(Fedora、CentOS、Manjaro)には、このオプションをオーバーライドして設定する追加の設定ファイル(inまたは/etc/X11/xorg.conf.d/
など)があります。追加の構成ファイルを変更または削除する必要があります。 X11ログファイルは、ロードされた構成ファイルを示しています。/usr/share/X11/xorg.conf.d/
xorg.conf
AllowNVIDIAGPUScreens
代替案:xorg.confを手動で作成
カードのPCI IDを確認してください。
nvidia-xconfig --query-gpu-info
PCI BusID
分野を見つけてください。これはカーネルに報告されたバスIDとは異なります。
またはを実行して開きsudo startx
(/var/log/Xorg.0.log
またはstartXが出力の「Logfile:」行の下にリストされているすべての場所)、行を見つけますNVIDIA(0): Valid display device(s) on GPU-<GPU number> at PCI:<PCI ID>
。
編集する/etc/X11/xorg.conf
xorg.conf
以下は、3つの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/
など)があります。追加の構成ファイルを変更または削除する必要があります。 X11ログファイルは、ロードされた構成ファイルを示しています。/usr/share/X11/xorg.conf.d/
xorg.conf
AllowNVIDIAGPUScreens
編集する/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設定を実行していますが、他の方法もあります。最初の行はシステムの各GPUファンを印刷します。ここではファンを75%に設定しました。
LaunchX
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
オーバークロックしたりできます。私の1080 Tiは、150Wが提供されている場合は1480MHzで動作し、300Wが提供されている場合は1800MHz以上で動作しますが、ワークロードによって異なります。クロック速度を監視できますnvidia-smi -q
。具体的に言うとwatch 'nvidia-smi -q | grep -E "Utilization| Graphics|Power Draw"'
自動ファン管理に戻ります。
再起動。ファンを自動的に操作する他の方法が見つかりませんでした。