グラフィックボードの寿命を伸ばす試み
グラフィックボードの稼働温度を下げる事でグラフィックボードの寿命を伸ばせると思ったので nvidia-smi コマンドで消費電力、周波数を下げて、稼働温度を下げます
機械の故障原因は9割(言い過ぎ?)コンデンサで、コンデンサは温度で壊れます、温度の原因は電流・電圧です。
そこで消費電力を下げてそもそも頑張れないようにする、周波数上限を下げてそもそも電力を控えめにします。
次の項でコマンドを解説しますが、設定値は自身の持つグラフィックボードの型番を調べてください。
NVIDIAのドライバが一式インストールされていれば nvidia-smi コマンドが利用可能です。
コマンドは Windowsキー → cmd と入力 → 出てきたアイコンの上で右クリックから「管理者で実行」 として実行します
WSL上のコンソール、コンテナ内部のコンソールからも実行可能ですが、ホスト環境で実行するのが一番確実かと思います。
注意事項(追記)
Windows Update とか グラフィックボードのドライバ更新のタイミングで設定が初期値(最大値?)に戻るようです
次のようなスクリプトを作成し、「右クリック」→「PowerShellで実行」として手軽に再設定できるように仕込むと良いと思います。
スクリプトがちょっと面倒な作りになっているのは、nvidia-smi コマンドが管理者権限でないと実行できないため、管理者権限でスクリプトを再起動するような仕組みとなっています。
# ---- elevate.ps1 (先頭に貼る) ----
$principal = New-Object Security.Principal.WindowsPrincipal([Security.Principal.WindowsIdentity]::GetCurrent())
if (-not $principal.IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)) {
$psi = @{
FilePath = (Get-Process -Id $PID).Path # powershell.exe / pwsh.exe を継承
ArgumentList = "-NoProfile -ExecutionPolicy Bypass -File `"$PSCommandPath`""
Verb = "RunAs"
}
Start-Process @psi
exit
}
# ---- ここから本処理 ----
nvidia-smi -pl 90
nvidia-smi --lock-gpu-clocks=1500,1500
pause
コマンド
現在の電力上限の範囲を確認:
nvidia-smi -q -d POWER
電力上限の設定
RTX4060を90Wに設定します、下限90Wなのでこれ以上下げられませんでした
nvidia-smi -pl 90
電力上限の値は下限より下げられないのでとりあえず下限に設定しました。
GPUクロックの範囲を確認
nvidia-smi -q -d SUPPORTED_CLOCKS
GPUクロックの設定
nvidia-smi --lock-gpu-clocks=1500,1500
寿命に関する推測
仮の話70度稼働を毎日続けたら1年の寿命、30度稼働だと10年持つみたいな、稼働温度と寿命は指数関数的な関係にあると思います
ですのでゲームや機械学習プログラムの速度に致命的な支障が無いのなら、消費電力や周波数を下げるだけ下げておいたほうがお高いグラフィックボードを長く使えるかなと思います。
以上です