AMD Posts "P-State EPP" Driver As New Attempt To Improve Performance-Per-Watt On Linux
Over the past year AMD engineers have been developing the AMD P-State CPU frequency scaling driver as an alternative to the long-used ACPI CPUFreq driver to provide better performance/power efficiency with Zen 2 and newer Ryzen/EPYC processors. Today they have now introduced AMD P-State EPP as they aim to deliver better performance-per-Watt.
AMD P-State hasn't always yielded better results than ACPI CPUFreq -- it generally has yielded better performance-per-Watt but sometimes acting quirky or exhibited other shortcomings based on my own benchmarks and other user reports too. With AMD P-State EPP they are hoping for a big tick-up in performance-per-Watt.
AMD P-State and the new P-State EPP depend upon Zen 2 and newer processors for ACPI Collaborative Processor Performance Control (CPPC) functionality. This amd-pstate-epp driver is focused around Energy Preference Performance (EPP) integration. From today's patch series:
Benchmark results provided by AMD using a Zen 2 EPYC "Rome" server showed amd-pstate-epp delivering significantly better performance-per-Watt than amd-pstate or acpi-cpufreq across various governors.
Over acpi-cpufreq schedutil, amd-pstate-epp in its power mode could offer around 14% better performance-per-Watt or around the same as cpu-freq schedutil when in the EPP performance mode.
The new amd-pstate-epp driver patches are now out for review on the kernel mailing list. I'll be running a comparison with a patched kernel build soon looking at how AMD P-State EPP compares to AMD P-State and ACPI CPUFreq on various Ryzen and EPYC platforms.
AMD P-State hasn't always yielded better results than ACPI CPUFreq -- it generally has yielded better performance-per-Watt but sometimes acting quirky or exhibited other shortcomings based on my own benchmarks and other user reports too. With AMD P-State EPP they are hoping for a big tick-up in performance-per-Watt.
AMD P-State and the new P-State EPP depend upon Zen 2 and newer processors for ACPI Collaborative Processor Performance Control (CPPC) functionality. This amd-pstate-epp driver is focused around Energy Preference Performance (EPP) integration. From today's patch series:
This patchset implements one new AMD CPU frequency driver "amd-pstate-epp” instance for better performance and power control. CPPC has a parameter called energy preference performance (EPP). The EPP is used in the CCLK DPM controller to drive the frequency that a core is going to operate during short periods of activity. EPP values will be utilized for different OS profiles (balanced, performance, power savings).
Energy Performance Preference (EPP) provides a hint to the hardware if software wants to bias toward performance (0x0) or energy efficiency (0xff) The lowlevel power firmware will calculate the runtime frequency according to the EPP preference value So the EPP hint will impact the CPU cores frequency responsiveness.
Benchmark results provided by AMD using a Zen 2 EPYC "Rome" server showed amd-pstate-epp delivering significantly better performance-per-Watt than amd-pstate or acpi-cpufreq across various governors.
Over acpi-cpufreq schedutil, amd-pstate-epp in its power mode could offer around 14% better performance-per-Watt or around the same as cpu-freq schedutil when in the EPP performance mode.
The new amd-pstate-epp driver patches are now out for review on the kernel mailing list. I'll be running a comparison with a patched kernel build soon looking at how AMD P-State EPP compares to AMD P-State and ACPI CPUFreq on various Ryzen and EPYC platforms.
22 Comments