Ubuntu 20.04。自动超频英特尔 i7-9700k?

Ubuntu 20.04。自动超频英特尔 i7-9700k?

我有一台运行在 ubuntu 20.04 上的新英特尔 i7-9700k。此处理器的基本频率应为 3.6 GHz,超频后的最大频率应为 4.9 GHz。

我今天做了一个昂贵的计算,并查看了时钟频率

watch -n.1 "cat /proc/cpuinfo | grep \"^[c]pu MHz\""

CPU 内核主频约为 4.5 GHz。怎么会这样?我没有更改 BIOS 设置?根据 lm-sensors 的数据,温度处于正常范围内(大部分低于 80 'C)。根据需求:

cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_driver

返回

intel_pstate
intel_pstate
intel_pstate
intel_pstate
intel_pstate
intel_pstate
intel_pstate
intel_pstate

cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor

返回

powersave
powersave
powersave
powersave
powersave
powersave
powersave
powersave

答案1

忙碌的时候

当您运行“昂贵的计算”时,有几个原因导致您的 CPU 可能无法达到 4.9 GHz,而只能达到 ~4.5 Ghz。一个可能的原因是,特别是如果您的应用程序是多线程的,典型的最大频率降低与有多少个内核处于活动状态有关。示例 (i7-2600K),摘自 turbostat:
cpu1: MSR_TURBO_RATIO_LIMIT: 0x23242526
35 * 100.0 = 3500.0 MHz max turbo 4 active cores
36 * 100.0 = 3600.0 MHz max turbo 3 active cores
37 * 100.0 = 3700.0 MHz max turbo 2 active cores
38 * 100.0 = 3800.0 MHz max turbo 1 active cores

通常情况下,这种情况极不常见(i5-9600K,但这不是处理器的默认设置,我是在 BIOS 中做的):

cpu3: MSR_TURBO_RATIO_LIMIT: 0x2b2b2e2e2e2e2e2e
43 * 100.0 = 4300.0 MHz max turbo 8 active cores  <<< I don't have 8 cores
43 * 100.0 = 4300.0 MHz max turbo 7 active cores  <<< I don't have 7 cores
46 * 100.0 = 4600.0 MHz max turbo 6 active cores
46 * 100.0 = 4600.0 MHz max turbo 5 active cores
46 * 100.0 = 4600.0 MHz max turbo 4 active cores
46 * 100.0 = 4600.0 MHz max turbo 3 active cores
46 * 100.0 = 4600.0 MHz max turbo 2 active cores
46 * 100.0 = 4600.0 MHz max turbo 1 active cores

其他原因包括您的功率偏置设置、I/O 等待、功率或热节流(您提到热不是问题,只是说说而已)。如果您想要获得最大的效果,您可以使用性能调节器而不是省电调节器。虽然许多人推荐更高级的工具,但我使用原语:

doug@s18:~/c$ cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
powersave
powersave
powersave
powersave
powersave
powersave
doug@s18:~/c$ echo performance | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
performance
doug@s18:~/c$ cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
performance
performance
performance
performance
performance
performance

空闲时

当以每秒 10 次的高速率对 CPU 进行采样时,命令本身通常会对系统产生影响,从而导致观察到的结果出现偏差。请记住,空闲的 CPU 可以一次进入非常深的空闲状态几秒钟,以高速率唤醒它们只是为了采样频率不是一个好主意,但在用户中却非常常见。如果您想知道系统发生了什么,那么我建议您使用 tubostat,原因有二:它是一款非常好的工具;它也是上游升级的首选工具。但请慢慢采样。示例(大多数情况下,我发现摘要信息已经足够好了,但您可以深入了解大量信息。我从最初的信息中保留了与 HWP 相关的行):

$ sudo turbostat --Summary --show Busy%,Bzy_MHz,PkgTmp,PkgWatt,GFXWatt,IRQ --interval 6
...
CPUID(6): APERF, TURBO, DTS, PTM, HWP, HWPnotify, HWPwindow, HWPepp, No-HWPpkg, EPB
...
cpu0: MSR_PM_ENABLE: 0x00000001 (HWP)
cpu0: MSR_HWP_CAPABILITIES: 0x0109252e (high 46 guar 37 eff 9 low 1)
cpu0: MSR_HWP_REQUEST: 0x8000ff01 (min 1 max 255 des 0 epp 0x80 window 0x0 pkg 0x0)
cpu0: MSR_HWP_INTERRUPT: 0x00000001 (EN_Guaranteed_Perf_Change, Dis_Excursion_Min)
...
Busy%   Bzy_MHz IRQ     PkgTmp  PkgWatt GFXWatt
0.03    956     262     31      1.82    0.00
0.03    800     122     31      1.85    0.00  <<< Notice the busy % and low CPU freq.
0.03    800     131     32      1.86    0.00
0.03    800     166     31      1.86    0.00
0.03    800     140     31      1.86    0.00
0.03    800     128     31      1.83    0.00
0.03    800     128     31      1.78    0.00
0.02    800     99      31      1.75    0.00
0.03    800     139     31      1.78    0.00
0.02    800     108     31      1.58    0.00
0.03    800     144     31      1.66    0.00
0.03    800     121     31      1.72    0.00

现在,仅仅因为您看到 CPU 频率高得多,并不意味着您的功耗高得多(如果有的话)。如果频率更高,CPU 也会更快地完成工作,并且它会更快、更长时间地返回睡眠状态。示例:

Busy%   Bzy_MHz IRQ     PkgTmp  PkgWatt GFXWatt
0.02    800     100     31      1.90    0.00  <<< notice slightly different baseline than above (different kernel today)
0.02    800     93      31      1.90    0.00
0.03    800     130     31      1.90    0.00
0.05    800     208     31      1.90    0.00
0.04    800     169     31      1.90    0.00
0.05    1069    199     31      1.91    0.00
0.06    1904    285     31      1.94    0.00
0.00    4548    98      31      1.93    0.00
0.00    4600    89      32      1.93    0.00
0.01    4545    129     32      1.93    0.00 <<< Cost was about 0.03 watts.
0.00    4601    109     31      1.93    0.00
0.01    4559    140     31      1.94    0.00

答案2

我读了你的问题,你对看到如此高的频率值感到惊讶。核心速度的选择并不简单。您可以通过输入命令来获得更多详细信息cpufreq-info。它应该显示current policy您的调速器可以在800 MHz and 4.90 GHz或类似之间进行选择。(我的 CPU 是 i9-9900K,显示介于之间800 MHz and 5.00 GHz。)

如果您确实想进一步限制频率,可以使用cpufreq-set

相关内容