💠

最もシンプルなLinux NVIDIA GPUファン速度制御チュートリアル

2024/06/28に公開

はじめに

Linuxサーバー/PCにNVIDIA GPUが搭載されており、グラフィカルインターフェースなしでSSHを介してファン速度を調整する必要がある場合、これはその目標を達成する最も簡単な方法です。ノイズの低減、効率の向上、またはハードウェアの冷却を目的としているかどうかに関わらず、このガイドは迅速に始めるのに役立ちます。

(GUI不要、SSHだけでOK)(おそらく最も簡単)

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

English Version


クイックスタートガイド

環境設定

  1. Python仮想環境を作成

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

    pip3 install pynvml
    
  3. ファンコントロールスクリプトをダウンロード

    wget https://raw.githubusercontent.com/RoversX/nvidia_fan_control_linux/main/nvidia_fan_control.py
    
  4. 必要に応じてスクリプトを修正

    # ファンカーブのパラメータ
    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スクリプトを作成

nano fan.sh

エディタが開いたら、次の内容をコピーして貼り付けます:

#!/bin/bash

# 特権を昇格させて仮想環境をアクティブ化するためにsudoを使用
sudo bash <<EOF
source /home/x/Workspace/fan/bin/activate
python /home/x/Workspace/fan/nvidia_fan_control.py
deactivate
EOF

ファンコントロールの開始

すべての設定が完了したら、次のコマンドを実行してファン速度の制御を開始します:

./fan.sh

出力例

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

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 のコードの一部を使用して、自動ファンコントロールにリセットしています。

finally:
    # 自動ファンコントロールにリセット
    for handle, fan_count in zip(handles, fan_counts):
        for i in range(fan_count):
            nvmlDeviceSetDefaultFanSpeed_v2(handle, i)
    nvmlShutdown()

結論

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

Discussion