I have a laptop with an Intel i7-1065G7 cpu. turbostat
reports
35 * 100.0 = 3500.0 MHz max turbo 8 active cores
35 * 100.0 = 3500.0 MHz max turbo 7 active cores
35 * 100.0 = 3500.0 MHz max turbo 6 active cores
35 * 100.0 = 3500.0 MHz max turbo 5 active cores
35 * 100.0 = 3500.0 MHz max turbo 4 active cores
35 * 100.0 = 3500.0 MHz max turbo 3 active cores
38 * 100.0 = 3800.0 MHz max turbo 2 active cores
39 * 100.0 = 3900.0 MHz max turbo 1 active cores
(these are 4 physical/8 virtual cores) When I throw a large single-thread load (calculating pi with mpfr
) at the cpu I observe that two cores (maybe one physical core?) run at exactly 3500 MHz while the others have a lower frequency. But they never reach the higher turbo boost frequencies.
If I disable some of the cpu cores (e.g. with echo 0 > /sys/devices/system/cpu/cpu[2-7]*/online
) the laptop does reach the corresponding higher turbo boost frequencies, resulting in increased performance (a task that took on average 18.5 seconds before now takes 16.8).
How can I get my new laptop to reach its maximal clock speed when not all cores are needed?
I'm using Ubuntu 20.04 with kernel 5.4.0 on an HP Envy x360 laptop.
What I expect:
On my old laptop with an i7-4712MQ turbostat
gives
30 * 100.0 = 3000.0 MHz max turbo 4 active cores
30 * 100.0 = 3000.0 MHz max turbo 3 active cores
32 * 100.0 = 3200.0 MHz max turbo 2 active cores
33 * 100.0 = 3300.0 MHz max turbo 1 active cores
(this is also a 4/8 core machine). On this machine a single-core load makes one core boost to almost 3.3 GHz, under a two-core load two clock at 3.2 GHz etc.
I haven't checked individual cpu frequencies on Windows, but the task manager sometimes displays frequencies above 3.7GHz.
Update: So the problem disappeared... I have no idea why. I did uninstall linux-cloud-tools
but I don't think this should be the reason.