首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >英特尔MSR每螺纹频率缩放

英特尔MSR每螺纹频率缩放
EN

Stack Overflow用户
提问于 2012-06-19 12:04:38
回答 4查看 2.9K关注 0票数 7

我正在扩展Linux内核,以控制某些线程的频率:当它们被调度到内核(任意内核!)上时,通过将适当的p状态写入寄存器IA32_PERF_CTL来改变内核的频率,就像英特尔手册中所建议的那样。但是,当调度具有不同“自定义”频率的不同线程时,似乎所有线程的吞吐量都会增加,就好像所有核心都以最大的设置频率运行一样。

我在不同的负载和配置条件下做了很多试验和测量,但是结果是一样的。在对CPUFreq进行了一些试验之后(没有运行的应用程序,我在每个核上设置了不同的频率,最后用cpufreq-info -w设置的频率是相等的),我想知道CPU内核是否真的可以在不同的、独立的频率上运行,或者是否存在硬件策略或约束。

最后,是否有一个CPU模型使这种细粒度的频率缩放成为可能?

我使用的处理器是Intel Core i5 750。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-11-19 22:59:44

不能控制活动核的单个核心频率。但是,您可以控制所有活动核的频率是相同的。原因是在前面的答案-所有的核心是在相同的有源电压平面。希望下一代哈斯韦尔处理器能够单独控制每个核心.

票数 4
EN

Stack Overflow用户

发布于 2012-09-26 16:02:36

我想你漏掉了一张大照片!

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

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

“这一切都非常类似于AMD的”现象“,但两者的不同之处在于它们处理电源管理的方式不同。虽然允许单个核心请求不同的时钟速度,但Nehalem试图以相同频率的运行所有核心;如果一个核心空闲,那么它只是电源门控,核心实际上被关闭。”

我还没有把电度表连到SB/IB上,但我的猜测是这种行为是一样的。

票数 3
EN

Stack Overflow用户

发布于 2012-07-13 01:04:55

cpufreq-info将显示P状态下哪些核心需要同步的信息:

代码语言:javascript
复制
[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上运行。

此外,检查如何使内核线程坚持到特定的核心,以避免意外的切换,如果你还没有这样做。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11100522

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档