爆熱のRyzen Mobileをなんとかする

投稿者: | 2019年6月14日

ThinkPad A285が届いておおよそ半年が経過しました。概ねレビューに書いた通りに使えています。

長期使用して発熱の激しいRyzen Mobileについて知見が貯まってきたので補足程度にメモ。

Ryzen Mobile の特性

Ryzen PRO 7 2700Uでの事例です。他のSKUでは傾向が違うかも。

コア温度が65℃を越えたあたりからCPUを熱暴走から保護するサーマルスロットリングが発生し、CPU 400MHz (3倍?)、GPU 200MHz まで下がります。酷い時は137MHz (1倍?)まで下がる時もあります。

私見ですが、CPUクロックを見ている限り負荷が発生するとPrecision Boostが働き、見境なくクロックを上げてしまうようです。3GHz以上で駆動する時も多く、その後スロットリングが発生してしまう動作です。

特に放熱に余裕のない小型機種では厳しいようです。ThinkPad A285では85℃程度まで上がる時もありました。

対策

(ThinkPad向け) パフォーマンス設定を変える

これ全然知らなかったのですが、ThinkPad A285ではFn+Qキーを押すと高パフォーマンスモード静音モードが切り替わります。

スロットリングが発生するのはほぼ高パフォーマンスモードのみで、静音モードではほとんど発生せず、最低でも1.2GHzあたりを維持してくれます。最大クロックは定格の2.2GHzあたりで打ち止めになるようです。

通知領域のアイコンをクリックしても変わりますが、これが状況によって出たり出なかったりするのは何故?

Windows の電源オプションをいじる

Twitter のモーメントで見つけた設定です。

Ryzen Mobileは、Windowsの電源オプションでパフォーマンスを絞り込むと、最大クロックが制限されるのと引き換えにスロットリングが発生しにくくなるようです。設定方法はこちら。

コントロールパネルの電源オプションにて「電源プランの作成」を選択。

「バランス」をコピーした電源プランを作成します。ここでは「Ryzen Mobile」とでも付けておきます。

電源プランの詳細設定にて、「プロセッサの電源管理」→「最大のプロセッサの状態」を99%に設定。

これで設定した電源プランを切り替えれば完了。

この設定では、筆者が確認した限りではスロットリングは発生しませんでした。ただし、動作クロックが1.68GHzで頭打ちになる現象が見られます。

実際のところ、CPU性能は2/3程度まで落ちてしまうようです。そのため、この設定はGPUに高負荷をかけ続けるゲームなどの用途では有利ですが、CPUの負担が大きい処理では逆に不利と言えます。

必要に応じて切り替えると便利ですが、設定項目が深く結構面倒です。

設定切り替えツール

そこで、電源設定を一発で切り替えられるようにPowerCfgToggleというユーティリティを作りました。

Windowsの電源設定はpowercfg.exeを実行するとコマンドで切り替えが可能ですが、設定の度にいちいちシェルを出していては手間です。

本ツールでは、実行の度に既存の電源設定をトグルし、切り替わった設定が通知領域に表示されるようにしました。通知を消すか一定時間が経過するとツールは終了し、再度実行すると次の設定に切り替わります。

詳しい使い方については上記のリポジトリのドキュメントを参照して下さい。ThinkPadではFn+F12に割り当てると便利ですよ。

なお、本ツールは執筆時点ではソースコードのみの公開です。使用にあたってはご自身でビルドして下さい。