为什么Intel Turbo Boost模式没有运行在最高速度?

我用英特尔工具i7zturbostatlinux-tools软件包(sudo modprobe msrsudo turbostat)测试了CPU频率,并发现两个不同处理器的最大频率低于英特尔规定的最大睿频频率。
我使用indicator-cpufreq在4个核心上测试了MrBayes MPI,使用了ondemandperformance两种调度器以及“turbo”选项。
  1. i5-3210M - 英特尔规格最大频率:2.5GHz - 3.1GHz睿频

    最大测量值:2.89GHz

  2. i5-3470 - 英特尔规格:3.2GHz - 3.6GHz睿频

    最大测量值:3.39GHz

我还尝试在tty1中运行for i in {1..4}; do burnK7 & done,并在tty2中运行turbostat,结果相同。
为什么我在运行Ubuntu时测量到的最大Turbo CPU频率比Intel宣称的要低?那"缺失"的0.21GHz去哪了?

你是否处于需要使用涡轮增压的情况下?类似于burnK7这样的东西。虽然它有些陈旧,但应该能够让单个核心达到极限并进入涡轮模式。 - Oli
可能重复:http://askubuntu.com/questions/37618/is-turbo-boost-working - Leo
1这不是对Turbo Boost的普遍质疑,而是询问为什么Turbo Boost没有以最大可能的速度运行。 - joschi
在问题中添加了测试信息。 - joschi
你可以尝试启动tty1,在终端中输入sudo service lightdm stop来停止在CPU中运行的图形进程,并在tty2中执行while :; do :; done,同时运行sudo turbostat或i7z监视器。 - Leo
添加了更多的信息。 - joschi
2个回答

实际上,由于您正在运行所有4个核心,所以无法达到指定的最大频率。英特尔为单个运行核心规定了最大睿频频率。
对于1个活动核心和4个活动核心,可以实现不同的最大频率(以防止超过TDP) http://www.cpu-world.com/CPUs/Core_i5/Intel-Core%20i5-3210M%20(BGA)%20Mobile%20processor.html 例如,您实际获得的频率约为2.9 GHz而不是3.1 GHz。
如果您在i7z中查看,会有一行指定//// 1/2/3/4核心的最大倍频。如果多个核心处于活动状态,则不能超过这些倍频。
此外,非活动核心需要处于C3或更高的状态,以允许活动核心进入更高的睿频级别。

1没想到当使用多个核心时,最大的 Turbo 频率会有所不同。谢谢提供这些信息。 - joschi

您的BIOS设置这些值,所以您需要与主板供应商进行确认。在我的情况下,我可以根据自己的需求进行配置,因为我使用的是专为超频和解锁CPU设计的主板。

1我只有一个用于在BIOS中启用/禁用Turbo Boost的开关。当然,它是已启用的。 - joschi