ITエンジニアのコツコツ日記

ITエンジニアの雑記です

ThrottleStopでCPUのクロックダウンを防ぐ(サーマルスロットリング無効化)

負荷時にノートPCのCPUクロック数が下がる

ノートPCやタブレット等で高負荷時にCPUが高温になるとCPUの発熱防止機能となるサーマルスロットが機能する。

サーマルスロットリングはCPUのクロックを低下させて、消費電力を抑えて発熱量を低下させるものだ。

一部のPCでは冷却能力が不足し、一定の温度に達するとサーマルスロットが機能し、CPUの処理速度が低下する。

MacbookでCPUクロックの低下の例

f:id:itkotsukotsu:20200922131618p:plain

Macbook12インチでbookCamp経由でWindowsを動作させているが、ファンレスPCのためCPU温度が上がりがちなモデル。

少し作業するだけて、CPU周波数が0.9Ghzで張り付いてしまう。

ただ、不思議なことに本体を触ってもMacOSを稼働させたときのように劇熱ではないのだ。

MacOSのではCPU温度が100℃近く上昇を続け、90℃付近でサーマルスロットが機能して均衡が保たれていた。特に動作の低下も感じづらい。

Windows10では全然熱くないのにすぐクロックダウンしてしまう。0.9Ghzまで低下すると動作速度低下を体感できるレベルで、作業に大きく支障がでる。

クロックダウン時のCPU温度

CPU温度を確認すると50℃しかなかった。

f:id:itkotsukotsu:20200922132229p:plain

CPUの温度計測はHWMonitorから可能だ。

HWMonitor

高負荷時のサーマルスロットリングが発生しているのに50℃というのはおかしい。

クロックダウン後の冷却後にクロックが再上昇していないように見える。

実はこの現象は超小型PCの GPD Pocketでも発生しており、不当にCPUが低周波数でとどまる症状が出ていた。

CPUのサーマルスロットをThrottleStopで停止する

どうもWindows OSは不当にCPUクロックを低下させたままになる症状がありそうだ。

サーマルスロットリングの動作アルゴリズムが不明瞭だが、ハードウェアレベルでのスロットリング動作とOSのソフトウェアレベルでのスロットリング動作がある。

アプリケーションからソフトウェアレベルのサーマルスロットリングを無効化できるソフトを見つけた。

ThrottleStop f:id:itkotsukotsu:20200922133116p:plain

記事を書いたときは9.2がStableバージョン。 CPUの動作を変更させるリスクがあるソフトなので、Stableバージョンをお勧めする。

ThrottleStopでサーマルスロットリングの停止

ThrottleStopをダウンロードし、zipを展開すれば特にインストーラ形式でないため準備完了だ。

f:id:itkotsukotsu:20200922133419p:plain

このソフトはCPUの熱が上昇するため、自己責任で使うよう警告が出る。

ThrottleStop起動後は以下のような画面。

f:id:itkotsukotsu:20200922133604p:plain

Settings内で細かい調整は可能だが、サーマルスロットリングのみ無効化したいなら以下を有効にしてアプリケーション下部のTurn Onを押せば良し。

  • Settings -> Clock Mod
  • Settings -> Set Multiplier
  • Settings -> SpeedStep

ThrottleStop起動前(0.9Ghzで張り付き)

f:id:itkotsukotsu:20200922140436p:plain

CPUが0.9Ghzでとどまり、CPU使用率は99.1%となっていることがわかる。

CPU温度も54℃で低温だ。

ThrottleStop起動後(2.9Ghzまで上昇)

f:id:itkotsukotsu:20200922140613p:plain

ThrottleStopをTurn On後にCPUのクロック数が急上昇し2.9Ghzまで到達した。

これはMacbook搭載のIntel Core m7プロセッサのターボブーストの上限に近い値。

CPU温度も96℃に到達し、サーマルスロットリングの解除に成功したようだ。

ThrottleStop有効時のハードウェアサーマルスロットリングについて

ThrottleStopでサーマルスロットリングを無効化するとCPUの温度上昇が止まらないのではと不安に思うこともあるだろう。 ThrottleStop有効にして、CPUを高負荷にしてみた結果が以下だ。

Intel® Power GadgetでCPU周波数の変化を測定

Intel® Power Gadgetを用いるとCPU温度、周波数の変化をグラフで見ることが可能だ。

Intel® Power Gadget

ThrottleStopを有効にして、CPUに負荷をかけて経過を観察した。

f:id:itkotsukotsu:20200922141458p:plain

上記のグラフのPackage Frq0 がCPUの動作周波数だ。

CPUに負荷をかけた直後に周波数が2.9Ghzまで上昇している。

一定期間2.9Ghzを維持したあとにクロックダウンしており、その後は2.2~2.3Ghzで維持された。

これはハードウェアサーマルスロットリングが動作しているためであり、不当なクロックダウンは起きておらず、CPU温度と動作速度の均衡がとれた値に収束する。

Macbook12インチに限っては均衡値が約2.2Ghzなのだろう。

まとめ

  • WindowsOSではOS側の制御で不当にCPU動作クロックが低下する
  • ThrottleStopを使ってソフトウェアサーマルスロットリングの無効化が可能
  • ハードウェアサーマルスロットリングは独立して動作し、安全な温度で動作

Macbookに限らず、メーカの調整が不十分なWindows端末はCPUクロックが低下する症状が多々見られる。

ThrottleStopを使って正常動作に戻すことは可能だが、温度上昇はPC寿命を短くする可能性もあるため、十分注意して運用してほしい。