定期的にいじってみては元のさやに戻る省電力モードの設定です。今回はどうでしょうか。
はじまりはいつも「艦これ」
Firefox で「艦これ」をプレイしているのですが、Firefox を起動してから長い時間が経ったとき?に「艦これ」の戦闘中のアニメーションがちょっとカクカクすることがあります。
これをなんとか解消したいなぁ、と思っていつもいろいろと試しています。
これは GPU の性能不足なのではないかと思ったのが最初のステップでした。
Ryzen 5 5600G の内蔵 GPU なのですが、調べてみるとどうやら性能は Radeon RX 550 と同等なようです。上位 APU の Ryzen 7 5700G は CU 数が 8 となっており、これに換装すると 10% ほど性能が上がるようです。
本当に GPU の性能が足りないのかを確認するために GPU の使用率を改めて見てみましたが、「艦これ」プレイ中の GPU 使用率は 20% 未満であったため、投資しても効果はないと判断しました。
投資しなくても効果が出せるものはないかと考えてみたところ、CPU の動作クロックを製品規定の上限から少し下げていたことを思い出しました。クロックを上げるとカクカクが解消されるのではないかと考えたのです。
現在は AMD P-state EPP ドライバーで powersave モードを使っています。Linux kernel 6.4 から搭載されている AMD P-state Guided ドライバーを使うとクロックを上げてもより省電力になるのではないだろうか?ということで始まりました。
やってみた
ということで、AMD P-state Guided ドライバーを試してみます。
CPU は Ryzen 5 5600G で、OS は LMDE 6 に Linux kernel 6.5.0-0.deb12.4-amd64 という構成です。
kernel 起動オプションに amd_pstate=guided と指定するだけです。
Command line: BOOT_IMAGE=/boot/vmlinuz-6.5.0-0.deb12.4-amd64 root=UUID= ro quiet splash amd_pstate=guided
ちなみに、デフォルトで AMD P-state は有効化されており、モードは 3 なので EPP ドライバーが適用されるようです。
$ cat /boot/config-6.5.0-0.deb12.4-amd64 | grep -i amd CONFIG_X86_AMD_PSTATE=y CONFIG_X86_AMD_PSTATE_DEFAULT_MODE=3
OS 起動後に cpupower コマンドで現状を確認してみます。
$ cpupower frequency-info analyzing CPU 1: driver: amd-pstate CPUs which run at the same hardware frequency: 1 CPUs which need to have their frequency coordinated by software: 1 maximum transition latency: 20.0 us hardware limits: 400 MHz - 4.46 GHz available cpufreq governors: performance schedutil current policy: frequency should be within 400 MHz and 3.00 GHz. The governor "schedutil" may decide which speed to use within this range. current CPU frequency: Unable to call hardware current CPU frequency: 3.12 GHz (asserted by call to kernel) boost state support: Supported: yes Active: yes AMD PSTATE Highest Performance: 166. Maximum Frequency: 4.46 GHz. AMD PSTATE Nominal Performance: 145. Nominal Frequency: 3.90 GHz. AMD PSTATE Lowest Non-linear Performance: 88. Lowest Non-linear Frequency: 2.37 GHz. AMD PSTATE Lowest Performance: 15. Lowest Frequency: 400 MHz.
EPP ドライバーの時は governors が「performance」「powersave」の 2種類でしたが、Guided ドライバーの時は「performance」「schedutil」の 2種類になるようです。
あ、BIOS で無効化しているのに boost が勝手に有効化されていますね。ワタシ、boost 機能はキライなんですよ。
ちょっと使ってみたところ、アイドル時は「Lowest Non-linear Performance」 のクロックまでしか下がらないようでした。EPP ドライバーの powersave モードでは「Lowest Performance」の 400MHz まで下がっていたんです。しかし、見た目の動作クロックは高いものの CPU 温度は今の季節ということもあってか EPP ドライバーの時よりも少し低くなっている気がします。(30 度が 29 度とか)
ただし、なんか負荷が上がると boost も有効になっているからか、だいぶ CPU 温度が上がってしまいます。負荷が落ち着くと CPU 温度もスッと下がってくれるのでその点は好感触なのですが、やはりなんとかして boost を止めたいのです。
boost を止めてみた
Guided ドライバーだと cpupower コマンドの frequency-set でクロックの上限を下げても無視されてしまうようです。
なんとかして boost を止められないかと調べたところ、発見しました。
$ sudo bash -c "echo 0 > /sys/devices/system/cpu/cpufreq/boost"
ムフ、これで boost は止められましたよ。
$ cpupower frequency-info analyzing CPU 3: driver: amd-pstate CPUs which run at the same hardware frequency: 3 CPUs which need to have their frequency coordinated by software: 3 maximum transition latency: 20.0 us hardware limits: 400 MHz - 3.90 GHz available cpufreq governors: performance schedutil current policy: frequency should be within 400 MHz and 3.90 GHz. The governor "schedutil" may decide which speed to use within this range. current CPU frequency: Unable to call hardware current CPU frequency: 2.37 GHz (asserted by call to kernel) boost state support: Supported: yes Active: no AMD PSTATE Highest Performance: 166. Maximum Frequency: 4.46 GHz. AMD PSTATE Nominal Performance: 145. Nominal Frequency: 3.90 GHz. AMD PSTATE Lowest Non-linear Performance: 88. Lowest Non-linear Frequency: 2.37 GHz. AMD PSTATE Lowest Performance: 15. Lowest Frequency: 400 MHz.
ほれほれ、boost が「Active: no」に変化してくれました。
最後に
Guided ドライバー、なかなか好感触です。動作クロックが高ければ CPU 温度も上がってしまうんだというワタシの固定観念が吹き飛びました。仕組みはよく把握できていませんが、以前よりもアイドル時は高クロックなはずなのに、CPU 温度は低くなっています。感激です。
あとは「艦これ」のカクカクの解消ですね。まだ試し始めてからそんなに時間が経っていないこともあって、こちらの効果は不明という状況です。もう少し様子を見てみます。