amd-pstate-epp CPUドライバの効果 (Linux)
Live With Linux::kernel
- TOP
- Articles
- Live With Linux
- amd-pstate-epp CPUドライバの効果 (Linux)
序
一般的にLinuxで利用するCPUドライバはacpi-cpufreqである。
acpi-cpufreqは現在の利用状況とgovernorに応じてCPUの周波数を変更する。
しかし、現代では電力とパフォーマンスのコントロールは非常に複雑に制御され、省電力と性能を両立している。P-Stateはそのような技術のひとつで、amd-pstate-eppはLinux 6.3で追加された、AMD Ryzen向けのCPUドライバである。
このCPUドライバは仮想のpowersave governorとperformance govenorを提供する。 powersave governorは電力性能を重視し、performance govenorは最大パフォーマンスを出そうとする。 これは、Windowsの省電力/パフォーマンスの設定とだいたい同じ。
新しいamd-pstate-eppドライバを使うには、
# echo amd_pstate > /etc/modules-load.d/amd_pstate.conf
のようにしてモジュールをロードさせ、カーネルオプションとして
amd_pstate=active
を追加する。
ブラウザパフォーマンス計測
Antutu HTML5 Benchmarkの結果。 ベンチマークの参考値はChienomiの記事にあるが、計測条件が大きく異なるため、それらと値は比較はできない。
- Linux 6.8.5
- Vivaldi 6.6.3271.61 (stable)
- Ryzen 9 5950X, DDR4-2133, RX7900XTX
CPU Driver | Governor | Score |
---|---|---|
acpi-cpufreq | performance | 79899 |
amd-pstate-epp | performance | 82573 |
放電計測
IdeaPadの放電レートをamd-pstate-epp/powersaveで計測。 こちらは計測条件があまり変わっていないため、acpi-cpufreqの結果として前述のベンチマークの結果を引用する。
Driver | Governor | Idle | Antutu | Antutu Score |
---|---|---|---|---|
acpi-cpufreq | powersave | 4.2 | 9.55 | 34085 |
amd-pstate-epp | powersave | 3.4 | 10.70 | 54104 |
acpi-cpufreqのほうは最低周波数固定なのに対して、amd-pstate-eppでは電力効率を重視するように要求する。このため、amd-pstate-eppでは周波数は上がりやすい。 一方、acpi-cpufreqは最低周波数でもそれなりに高い(1.7GHz)のに対し、amd-pstate-eppは非常に低い(400MHz)ため、振れ幅が大きい。
結果的に、アイドル時は明らかにamd-pstate-eppのほうが低い値になった。
Antutu HTML5 Benchmarkでは最大値自体は10.70と高いが、変動幅がacpi-cpufreqと比べ非常に大きく、最小は6.73Wであったため、ベンチマーク全体での消費電力では優れていそうであった。
amd-pstate-eppでは必要であればpowersaveであっても周波数を上げてパフォーマンスを出すため、acpi-cpufreqのpowersaveと違ってウェブブラウザの利用がきついということもなく、普通にpowersaveのまま使える。 このため、スコアはacpi-cpufreqのperformance(61794)に近い。
結論
- ウェブブラウザなどシングルスレッドが活発な状況のパフォーマンスは明確に向上する
- アイドル時の省電力性はより高い
- powersaveでのブラウザ利用において、うまくストレスを感じないパフォーマンスを出しつつも、良好な省電力性を保っている
- 従来、AMDのプロセッサの低負荷時の省電力性がIntelと比べていまいちな印象であったが、大きく改善された
- acpi-cpufreqから乗り換えるのがおすすめ