生成AIを使うときだけグラボのセミファンレスを解除する

最近のグラフィックボード(以下、グラボ)は大体セミファンレス仕様だと思うのですが、生成AIをしていると、生成中はグラボのファンが回り終わると止まります。生成は常に実行されるわけではないので、ファンの回転は小刻みに稼働と停止を繰り返します。


グラボの「セミファンレスモード」は、低負荷時にグラボのファンを回さないことにより消耗を減らしファンの寿命を延ばす仕様です。一方で、ファンの回転が止まったり動いたりを頻繁に繰り返すと、かえって消耗し寿命が縮むという意見もあったりします。どちらにせよ大した違いはないという意見もあります。


どちらの方が良いのか分からないので、通常はセミファンレスモードでPCを動かし、AI生成するときだけセミファンレスモードをオフにする運用をすることにしました。ただ私が持っているグラボ(MSI RTX5060Ti 16GB Gaming Trio OC)にはセミファンレスのオンオフ機能はついていないため、具体的にはAIを使用する時だけMSI Afterburnerを自動で立ち上げ、ファンの回転を制御するという方法をとりました。


1.Afterburnerを使用する

MSI Afterburnerはグラボの電圧やファン制御などが簡単に行えるツールです。MSIのグラボ以外でも使用できます。

Afterburner

Afterburner

MSI Afterburner is the world’s most recognized and widely used graphics card overclocking utility. It provides detailed overview of your hardware and comes with some additional features like customizing fan profiles, benchmarking and video recording.


注意点として、オーバークロックやダウンクロックをするとグラボのメーカー保証対象外になります。ファン制御だけなら今のところ問題ないです。詳しい使い方や保証対象外の範囲は変更されている可能性もあるため公式ページを参照してください。


設定ウィンドウのファンタブからファン回転数の設定をすれば、Afterburnerが起動している間はその設定どおりにファンが制御されます。


2.AI使用時にAfterburnerを自動起動

普段はAfterburnerを起動せずAI生成をするときだけ起動したいので、それ用のバッチファイルを作成します。

私の場合は通常ComfyUIを使っているため、バッチファイルを実行するとAfterburnerが立ち上がり、その後ComfyUIが立ち上がる仕様にします。バッチファイルの中身は以下のようになります。

 

@echo off

echo ...


set "EXENAME=MSIAfterburner.exe"

tasklist /FI "IMAGENAME eq %EXENAME%" | find /I "%EXENAME%" >nul

if errorlevel 1 (

    echo %EXENAME% run.

    start "title" "C:\Program Files (x86)\MSI Afterburner\MSIAfterburner.exe "

) else (

    echo %EXENAME% is already running.

)


call C:\Users\xxx\anaconda3\Scripts\activate.bat

call activate myenv

C:\Users\xxx\anaconda3\envs\myenv\python.exe C:\ComfyUI\main.py

 

echo completed.

pause


最初にAfterburnerを立ち上げる際、すでに起動されていれば実行しないように分岐を入れています。また、ComfyUIは仮想環境で実行しているためenvの起動コードが含まれています。なのでその辺や、各種実行ファイルの場所等は環境に合わせて変えてください。


尚、ComfyUIを終了してもAfterburnerを終了するようにはしていないため、Afterburnerは手動で終了させなければなりません。もし連動させる場合はComfyUI側のコードをいじる必要があると思われます。


Category
Comments (0 件)