web-dev-qa-db-ja.com

Nvidia GPUファンカーブの調整

そこで、Gigabyte GTX 960 ITXカードのカスタムファンカーブを作成する方法を見つけようとしていました。それは約半分の長さです(私の小さな場合)が、それは非常に小さなヒートシンクを持っていることを意味し、Nvidiaドライバーはそれを適切に補正していませんでした。

私はたくさんのグーグルをしましたが、ほとんどの答えは何らかの理由で実際には機能しませんでした。

カスタムファンカーブを作成するにはどうすればよいですか?

3
Ben

私は答えの大半を見つけました buntu Forums ですが、与えられたファン速度を設定するコマンドが間違っていました。私はシェルスクリプトも自分で書きました(そして、私は初心者です)ので、修正方法を教えてくれる限り、私がすべて間違ったことをコメントしてください:)私は理解できない人のために過剰なコメントを追加しましたbashは私がやっていることのアイデアを得ることができます。これは1つのGPUでのみ機能し、複数のGPUを変更する必要があります。ちなみに、設定したファンカーブはspeed%=0.028*(degreesC^2)です。

セットアップ

  1. ルートとして選択したファイルブラウザを実行します(私の場合はSudo konqueror)。
  2. /etc/X11に移動し、すべてのグループへの書き込みアクセスを許可します(ただし、ウィンドウは開いたままにします)。
  3. Nvidia Xサーバー設定ウィンドウ(端末のnvidia-settings)を開きます。
  4. nvidia-settings configurationに移動します。
  5. 現在の設定を保存をクリックし、ポップアップウィンドウで保存をクリックします。
  6. Nvidia Settingsを閉じ、Sudo nvidia-xconfigを実行してから、--cool-bits=4で再度実行します。
  7. リブート。

脚本

#!/bin/bash
# Put "sleep 30" here if you run it at start-up
# to make sure this starts after the Nvidia driver does.

fan="0"
gpu="0"
echo "GPU fan controller service started."
nvidia-settings -a "[gpu:$gpu]/GPUFanControlState=1" > /dev/null
check="$(nvidia-settings -a \"[fan:$fan]/GPUTargetFanSpeed=30\" | tr -d '[[:space:]]')"
working="Attribute'GPUTargetFanSpeed'($(hostname):0fan:$fan)assignedvalue30."

if [[ "$check" != "$working" ]]; then
    echo "error on fan speed assignment: $check"
    echo "Should be: $working"
    exit 1
fi
while true
do
    degreesC="$(nvidia-smi -i $gpu | grep -owEe '[0-9]+C')"
    fanSpeed=$(($degreesC ** 2))
    fanSpeed=$(($fanSpeed / 50))
    if [[ $fanSpeed -gt 100 ]]
    then
        fanSpeed=100
    fi
    nvidia-settings -a "[fan:$fan]/GPUTargetFanSpeed=$fanSpeed" > /dev/null
    sleep 8
done

RX 480にアップグレードするので、今後これを更新することはおそらくないでしょう。

5
Ben

私はこれのために独自のスクリプトを作成しましたが、これまで見た中で最高です。皆さんの何人かが私のコードに貢献して改善してくれることを期待しています。 Mineは実行するだけで機能し、349.16未満の古いバージョンをサポートできるはずです。また、調整可能なファンカーブもあります。

Githubリンクはこちら: https://github.com/abc123me/Nvidia-Fancontrol

2
Jeremiah

スクリプトをありがとう。ファンのコントローラーの1つに問題があります。ハードウェアのファン制御を妨げるものです(2番目のファンが認識されず、最初は狂ったように回転し始めます)。ソフトウェア制御はWindows上でうまく機能するため、Ubuntuでファンカーブを使用してソフトウェア制御を実装する方法を確認することにしました。

とにかく、私がこれを入力しているのは、スクリプトでコンピューター名をハードコーディングしているためです(4行目:Bens-PC)。変数を使用し、スクリプトにコメントを付けて、人々が簡単に気付くことができるようにすることをお勧めします。

0
Denis