水たまりは希望を写している

ThinkPad のサーマルスロットリングがクソすぎたのでなんとかするアプリを作った

ThinkPad T14 Gen 2 (Intel)、めちゃくちゃヤバい

サーマルスロットリング起きまくりで、作業に支障が出る。どうやら ThinkPad は熱が発生しすぎると過剰に CPU のクロックを下げて、発熱を抑えようとするらしい。CPU 自体に熱による故障を回避するための仕組みが備わっているので、あえてソフトウェアでサーマルスロットリングを起こす必要はない

ThinkPad はノートパソコンなので、膝の上などで使う場合も想定してサーマルスロットリングを起こしているのだろう。そうなのかもしれないけど、ハッキリ言って「過剰」である。ちょっと負荷をかければありえないほどの低クロック (0.3 GHz) に落ちて全く使い物にならなくなる1ご参考までに、Windows 11 のシステム要件は 1 GHz 以上のクロックを必要としている。いかに 0.3 GHz がパワー不足であるかお分かりだろう。

Lenovo のフォーラムでもこのサーマルスロットリングについて言及されている。いろんなユーザーがこの問題に直面していて、問題解決するためにいろいろ検証してくれている。

  • 高出力な充電器を使う
  • 電源モードのスライダーを一番右にする
  • インテリジェントクーリングを無効にする
  • Vantage アプリでソフトウェアを更新する

……どれも全く効果がなかった。しかし、ひとつだけ明らかにサーマルスロットリングが改善される解決策があった

「Lenovo Intelligent Thermal Solution Service」を無効にする

Windows のサービスとして動作している「Lenovo Intelligent Thermal Solution Service」を無効にすることで、サーマルスロットリングが改善する。どうやらこのサービスが ThinkPad の熱管理を行っているらしく、これを無効にすることでソフトウェアによる CPU クロックの低下を防ぐことができるようだ。ただし、このサービスはファンの回転数も制御しているようで、サービスを無効化した状態でスリープするとファンが回りっぱなしのままモダンスタンバイに移行してしまう。サービスを無効化にしっぱなしで運用するのは難しい。

閃いた。ならば “自動で「Lenovo Intelligent Thermal Solution Service」を止めたり再開したりするアプリ” を作ればすべてが解決するのではないか? と。

作った

作った。名前は「ヤマトバクネツオー」(絶賛配布中)。名前の由来は「大和爆熱王」。

対象のアプリをあらかじめ登録しておき、それらが起動していると「Lenovo Intelligent Thermal Solution Service」を無効化する、という仕組み。なのでクロックを下げずに使いたいアプリやゲームを追加してやる。

そして、スリープしようとするとサービスを再開させてちゃんとファンが止まるようにしている2正確には、画面がロックされたら。モダンスタンバイの検知はめんどくさかったので画面ロックのフックを使うことにした。
サービスを制御するために管理者権限が必要なのでちょっと起動が面倒くさいが、タスクスケジューラを使えば問題なし。

これで、今までの悩みだった

  • Premiere Pro のプレビューが紙芝居で音がプツプツ
  • Lightroom の現像に死ぬほど時間がかかる
  • blender おっっっも!

が全部解決する。

まぁ当たり前のことだけど、あくまでもソフトウェアによるサーマルスロットリングを回避するためのアプリなので CPU 自身のサーマルスロットリングは起きる。というか起きてくれないと CPU がぶっ壊れるのでこちらはノータッチが正解だろう。
CPU がぶっ壊れることはないけど、ThinkPad が高温な状態が続く場合は製品寿命が短くなる可能性があり得る。どう考えても寿命よりサクサク動くことの方が大事だと思うけど。

――発熱量自体少ない AMD モデルにすればよかったなぁ……。

  • 1
    ご参考までに、Windows 11 のシステム要件は 1 GHz 以上のクロックを必要としている。いかに 0.3 GHz がパワー不足であるかお分かりだろう。
  • 2
    正確には、画面がロックされたら。モダンスタンバイの検知はめんどくさかったので画面ロックのフックを使うことにした。