Intel MSR frequency scaling per - thread

7
我正在扩展Linux内核以控制一些线程的频率:当它们被调度到任何一个核心上时,通过向寄存器IA32_PERF_CTL写入适当的p-state,更改核心的频率,正如Intel手册中建议的那样。 但是当不同的线程具有不同的“自定义”频率被调度时,似乎所有线程的吞吐量都增加了,就好像所有核心都以最大设置频率运行一样。
我在不同负载和配置条件下进行了许多试验和测量,但结果是相同的。在使用CPUFreq进行一些试验后(没有运行应用程序,我在每个核心上设置了不同的频率,最终测得的频率与cpufreq-info -w相等),我想知道CPU核心是否真的可以以不同的独立频率运行,或者是否存在硬件策略或约束。
最后,是否存在一种CPU型号,使得这种精细的频率缩放成为可能?
我正在使用的CPU是Intel Core i5 750。

2
CPU核心无法以不同电压运行,因此限制了设置不同频率/电压对的能力。 - David Schwartz
一般来说,每一代英特尔处理器都会增加核心之间的分离,并允许对这些东西进行更精细的控制。 - ugoren
4个回答

4

您无法单独控制活动核的频率。但是,您可以控制所有活动核心的频率相同。原因在前面的答案中已经解释 - 所有核都在相同的活动电压平面上。 希望下一代Haswell处理器将使单独控制每个核心成为可能。


3

我认为你缺少一个重要的知识点!

了解电源和时钟域。域内的所有处理器核心都以相同的P状态(即相同的频率和电压)运行。在该域中,所有核心将运行的P状态始终是请求该域中最高P状态的核心的P状态。MSR根本不反映这一点,内核暴露的接口也不是这样。

Anandtech有一篇很好的文章: http://www.anandtech.com/show/2658/2

“这与AMD的Phenom非常相似,但两者之间的区别在于它们如何处理电源管理。虽然AMD允许单个核心请求不同的时钟速度,但Nehalem试图以相同的频率运行其所有核心; 如果一个核心处于空闲状态,则它只是被电源门控,并且核心实际上被关闭。”

我没有将功率计连接到SB / IB,但我猜测行为是相同的。


2

cpufreq-info 会显示哪些核心需要在它们的 P-state 中同步:

[root@navi ~]# cpufreq-info
cpufrequtils 008: cpufreq-info (C) Dominik Brodowski 2004-2009
Report errors and bugs to cpufreq@vger.kernel.org, please.
analyzing CPU 0:
  driver: acpi-cpufreq
  CPUs which run at the same hardware frequency: 0 1 <---- THIS
  CPUs which need to have their frequency coordinated by software: 0 <--- and THIS
  maximum transition latency: 10.0 us.

至少因为这个原因,我建议通过cpufreq接口而不是直接设置寄存器,并且使其能够在可能具有不常见要求的非英特尔CPU上运行。

如果您还没有这样做,请检查如何使内核线程粘附到特定的核心,以避免意外切换。


谢谢大家的回答!现在我已经有了整体的了解。 - user1466329
有人尝试在Haswell上运行过吗?因为我没有这样架构的机器,所以我想知道现在是否可以做到;如果可以的话,我会重试。其次,我不认为我能通过cpufreq,因为我正在调度程序级别工作。为了给我正在工作的项目一个大局观,最终目标是获得目标感知和状态感知资源调度:因此我不能把决定留给其他人。 - user1466329
将核心亲和力设置的想法确实很有道理。无论如何,我还应该了解频率设置的时间粒度。 - user1466329

0

我想感谢每个人的贡献! 进一步调查后,我发现了其他细节并与社区分享。

正如建议的那样,Nehalem将所有核心放置在单个时钟域中,因此在所有核心中设置的最大频率应用于所有核心;一些工具可能会显示空闲核心上的不同频率,但只需运行任何应用程序即可使频率提高到最大。 从我的测试中可以看出,这也适用于Sandy Bridge,其中核心和LLC切片都驻留在相同的频率/电压域中。 我认为这种行为也会发生在Ivy Bridge上,因为它只是一个“tick”迭代。 相反,我认为Haswell将核心和LLC切片放置在不同的、单一的域中,从而实现每个核心的频率。这也在多个页面上进行了广告宣传,例如 http://www.anandtech.com/show/8423/intel-xeon-e5-version-3-up-to-18-haswell-ep-cores-/4


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接