English /简体中文/日本語

はじめに

LinuxサーバーやPCにNVIDIA GPUが搭載されており、グラフィカルインターフェースなしでSSH経由でファン速度を調整する必要がある場合、これが目的を達成する最も簡単な方法です。ノイズを減らしたい、効率を上げたい、あるいは単にハードウェアを冷却したい場合でも、このガイドで素早く始められます。

(GUIは不要、SSHのみ必要)(おそらく最もシンプル)

スクリプトのアドレス: https://github.com/RoversX/nvidia_fan_control_linux/


クイックスタートガイド

環境のセットアップ

  1. Python仮想環境の作成

    1
    2
    python3 -m venv fan
    source fan/bin/activate
  2. pynvmlライブラリのインストール

    1
    pip3 install pynvml
  3. ファン制御スクリプトのダウンロード

    1
    wget https://raw.githubusercontent.com/RoversX/nvidia_fan_control_linux/main/nvidia_fan_control.py

    中国本土のユーザーは、https://www.autodl.com/docs/network_turbo で詳細情報を確認してください。

  4. 必要に応じてスクリプトを修正

    1
    2
    3
    4
    5
    6
    # ファン曲線パラメータ
    temperature_points = [0, 40, 57, 70]
    fan_speed_points = [27, 40, 80, 100]

    # CPU活動を減らすためのスリープ間隔
    sleep_seconds = 5

    Screenshot 2024-06-28 at 7.39.43 PM.webp

スクリプトの設定

起動プロセスをより便利にするために、シンプルなfan.shスクリプトを作成します。

1
nano fan.sh

開いたエディタに以下の内容をコピー&ペーストします:

1
2
3
4
5
6
7
8
#!/bin/bash

# sudoを使用して権限を昇格し、仮想環境を有効化
sudo bash <<EOF
source /home/x/Workspace/fan/bin/activate
python /home/x/Workspace/fan/nvidia_fan_control.py
deactivate
EOF

ファン制御の開始

すべての設定が完了したら、以下のコマンドを実行するだけでファン速度の制御を開始できます:

1
./fan.sh

出力例

スクリプトを実行すると、以下のような出力が表示されます:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
x@x:~$ ./fan.sh
[sudo] password for x:
============================================================
Driver Version: 535.183.01
GPU 0: NVIDIA GeForce RTX 2080 Ti
Fan Count: 1
============================================================
Temperature: 42°C
Total Curve Point: 4
Current Curve Point: 2
Previous_Curve_Point: 1
Fan_Speed: 45%
============================================================
Temperature_Delta: 17
Fan_Speed_Delta: 40
Temperature_Increment: 2
Fan_Speed_Increment: 4.705882352941177
Previous_Temperature: 42°C
Step_Down_Temperature: 37
============================================================

この出力は、GPUの現在の温度とファン速度を明確に示し、デバイスが最適な条件で動作していることを確認できます。

このスクリプトは https://github.com/Cippo95/nvidia-fan-control をベースに改良されました。また、自動ファン制御に戻すために https://gist.github.com/AlexKordic/65f031b708177a01a002cc19f0d7298c のコードも一部使用しています。

1
2
3
4
5
6
finally:
# 自動ファン制御に戻す
for handle, fan_count in zip(handles, fan_counts):
for i in range(fan_count):
nvmlDeviceSetDefaultFanSpeed_v2(handle, i)
nvmlShutdown()

結論

これらのステップにより、グラフィカルインターフェースなしでLinux上のNVIDIA GPUのファン速度を簡単に制御できます。これは特にリモート管理やサーバー環境に適しています。