コトの発端
Stable Diffusionのモデルを追加学習してたけどRTX3080の10GB版だとメモリが足りなかった。
RTX4090が高すぎたので10万円を切ってた中古のRTX3090を買ってみたら、Kohya_ss GUIを使っての学習中に落ちる(ブラックアウト)現象が発生した。
先に結論
熱暴走。MSI AfterburnerのPrioritizeにて温度を優先するモードにすることで解決。

使用したグラボ
GIGABYTE GV-N3090AORUS X-24GD
原因調査
中古グラボで何かあるのではと思いつつも、RTX3090などのハイスペックなグラフィックボードはどうしても熱が発生するのでまずは熱暴走を疑った。
MSI Afterburnerをインストールして確認したところ、83度を超えたところでクロック速度を落とし発熱を抑えているようであった。
しかし、それでも冷却しきれずに設定温度を超過し、その先でブラックアウトが起きている様子であったためほぼ熱暴走で間違いなさそう。
下記画像はデフォルトのパラメータ(VOLT表示が常に0だがこれは異常なのか...?)

対策(失敗)
MSI Afterburnerにて、CORE CLOCKとMEMORY CLOCKをマイナスの下限値に設定したが、熱暴走は抑えられずに再発。

また、ネットの記事等を参考に低電圧化なども図ったが、学習実行時にエラーが発生するようになったため、低電圧化による対応は断念。
解決
MSI AfterburnerのFAN枠にあるPrioritizeを温度優先モードにして解決した。
下記の赤丸の位置をクリックし温度計のマークになったら温度優先モードになっている。

この温度優先モードは設定した温度を超えそうになると、温度を超える前に出力を抑えるようになっているっぽい。
それに対し、パワー優先モードは超えてから出力を抑えている様子であった。
おまけ あっきーの場合
温度優先モードにするだけだと設定した温度で張り付いてしまいクロックが上がったり下がったりする。
下記のように設定したところ設定温度以下の78度くらいで安定するようになった。
出力55%ならRTX3080とかのほうが早いんじゃね?とか思ったりもしなくはないけど、メモリ24GBを使えるのはRTX3090にしかない魅力。

いつもの
記事の正確性については無保証です。