-
Notifications
You must be signed in to change notification settings - Fork 216
uncore: Allow to configure uncore ELC control #731
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
The Efficiency Latency Control (ELC) feature improves performance per watt. With this feature hardware power management algorithms optimize trade-off between latency and power consumption. Add additional configuration for uncore plugin to include attributes to configure ELC. Refer to Intel White Paper https://www.intel.com/content/www/us/en/content-details/826934/intel-xeon-6-processors-performance-and-power-profiles-default-latency-optimized-mode-and-other-options.html?DocID=826934 Linux kernel documentation: https://docs.kernel.org/admin-guide/pm/intel_uncore_frequency_scaling.html Example configuration: If the average CPU utilization is below 10% (elc_low_threshold_percent attribute below), uncore floor frequency of 1400MHz will be used (elc_floor_freq_khz attribute below) instead of hardware calculated minimum. [uncore_all] type=uncore elc_floor_freq_khz=1400000 elc_high_threshold_enable=1 elc_high_threshold_percent=95 elc_low_threshold_percent=10
Thank you for the PR, @spandruvada , much appreciated! Let me try to get my hands on a more recent Intel system that supports this so that I can test this. |
Got my hands on a hardware to test this on today. Hopefully I get to keep it for at least 2 weeks. However, I'm seeing:
I'm testing this with the latest TuneD commit Edit: Getting this both on RHEL10 snapshot with python 3.12 and also CentOS Stream 9 with python 3.9. |
It seems it was extension of the internal API earlier which broke it, it needs changes to the
needs to be now:
This has to be changed in the all get/set. |
Thanks, @yarda . I've tested this PR successfully on RHEL10 snapshot with Granite Rapid AP (P-cores) and CentOS Stream 9 with Sierra Forest SP (SRF-SP) (E-cores) without any issues (all 4 new knobs were set). This is the patch I used on top of @spandruvada 's work:
Srinivas, would you be able to update your PR so that we can merge this? Thank you and our apologies for the delay. |
The Efficiency Latency Control (ELC) feature improves performance per watt. With this feature hardware power management algorithms optimize trade-off between latency and power consumption.
Add additional configuration for uncore plugin to include attributes to configure ELC.
Refer to Intel White Paper
https://www.intel.com/content/www/us/en/content-details/826934/intel-xeon-6-processors-performance-and-power-profiles-default-latency-optimized-mode-and-other-options.html?DocID=826934
Linux kernel documentation:
https://docs.kernel.org/admin-guide/pm/intel_uncore_frequency_scaling.html
Example configuration:
If the average CPU utilization is below 10% (elc_low_threshold_percent attribute below), uncore floor frequency of 1400MHz will be used (elc_floor_freq_khz attribute below) instead of hardware calculated minimum.
[uncore_all]
type=uncore
elc_floor_freq_khz=1400000
elc_high_threshold_enable=1
elc_high_threshold_percent=95
elc_low_threshold_percent=10